Centos7.9 MYSQL 8.1 源码安装

安装前卸载 mariadb

rpm -qa|grep mariadb # 查看版本
rpm -e --nodeps 文件名 #卸载
rpm -qa|grep mariadb # 确认是否卸载
  1. 下载 MYSQL
    下载地址
1695134393175.jpg
  1. 下载成功后,上传到服务器,进行解压
# .tar.gz 后缀
tar -zxvf 文件名

# .tar.xz 后缀
tar -Jxvf 文件名

# 重命名(也可通过Xftp修改)
mv 原文件夹名 mysql8.1

# 配置环境变量
vim /etc/profile
export MYSQL_HOME=/zytc/mysql8.1
export PATH=${JAVA_HOME}/bin:${MYSQL_HOME}/bin:$PATH
  1. 创建用户和数据目录
groupadd mysql
useradd -r -g mysql mysql

mkdir -p /zytc/data/mysqldata # 创建数据目录
# 更改属主
chown -R mysql:mysql  /zytc/data/mysqldata

# 更改权限
chmod -R 750 /zytc/data/mysqldata

  1. 准备配置文件
    在 /usr/local/etc 目录下面创建 my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4 # 默认字符集
[client]
port       = 3306 # 客户端端口
socket     = /tmp/mysql.sock # 客户端套接字
[mysqld]
port       = 3306 # 服务器端口
server-id  = 3306 # 服务器ID
user       = mysql # 用户名
socket     = /tmp/mysql.sock # 服务器套接字
# 安装目录
basedir    = /zytc/mysql8.1 # 安装目录
# 数据存放目录
datadir    = /zytc/data/mysqldata # 数据存放目录
log-bin    = /zytc/data/log-bin # 二进制日志文件
# 日志及进程数据的存放目录
log-error =/zytc/data/mysqldata/mysql/mysql.log # 错误日志文件
pid-file  =/zytc/data/mysqldata/mysql/mysql.pid # 进程ID文件
# 服务端字符集
character-set-server=utf8mb4 # 服务器字符集
lower_case_table_names=1 # 表名大小写敏感设置
autocommit =1 # 自动提交设置
##### 以上涉及文件夹明,注意修改
skip-external-locking # 跳过外部锁定
key_buffer_size = 256M # 键缓冲区大小
max_allowed_packet = 1M # 允许的最大数据包大小
table_open_cache = 1024 # 表打开缓存
sort_buffer_size = 4M # 排序缓冲区大小
net_buffer_length = 8K # 网络缓冲区长度
read_buffer_size = 128M # 读缓冲区大小
read_rnd_buffer_size = 512K # 随机读缓冲区大小
myisam_sort_buffer_size = 64M # MyISAM排序缓冲区大小
thread_cache_size = 128 # 线程缓存大小
#query_cache_size = 128M # 查询缓存大小
tmp_table_size = 1024M # 临时表大小
explicit_defaults_for_timestamp = true # 显式默认时间戳
max_connections = 500 # 最大连接数
max_connect_errors = 100 # 最大连接错误数
open_files_limit = 65535 # 打开文件限制
binlog_format=mixed # 二进制日志格式
binlog_expire_logs_seconds =864000 # 二进制日志过期秒数
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB # 默认存储引擎
innodb_data_file_path = ibdata1:10M:autoextend # InnoDB数据文件路径
innodb_buffer_pool_size = 4024M # InnoDB缓冲池大小
innodb_log_file_size = 256M # InnoDB日志文件大小
innodb_log_buffer_size = 8M # InnoDB日志缓冲区大小
innodb_flush_log_at_trx_commit = 1 # InnoDB事务提交时刷新日志
innodb_lock_wait_timeout = 50 # InnoDB锁等待超时
transaction-isolation=READ-COMMITTED # 事务隔离级别
[mysqldump]
quick # 快速导出
max_allowed_packet = 16M # 允许的最大数据包大小
[myisamchk]
key_buffer_size = 256M # 键缓冲区大小
sort_buffer_size = 128M # 排序缓冲区大小
read_buffer = 2M # 读缓冲区大小
write_buffer = 2M # 写缓冲区大小
[mysqlhotcopy]
interactive-timeout # 交互超时

  1. 初始化和启动 mysql

--defaults-file:指定配置文件(要放在--initialize 前面)
--user: 指定用户
--basedir:指定安装目录
--datadir:指定初始化数据目录
--intialize-insecure:初始化无密码(否则生成随机密码)

#初始化 mysql
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/zytc/mysql8.1 --datadir=/zytc/data/mysqldata --user=mysql --initialize-insecure

启动 mysql

mysqld_safe --defaults-file=/usr/local/etc/my.cnf 
ps -ef|grep mysql # 验证 mysql 是否启动成功

登录初始化密码

# 登录
mysql -u root --skip-password
# 初始化密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

使用 systemd 管理 mysql 的启动和停止
在 /etc/systemd/system/ 目录下 创建 mysql.service

[Unit]
Description=MySQL Community Server
After=network.target

[Service]
User=mysql
Group=mysql
ExecStart=/zytc/mysql8.1/bin/mysqld --defaults-file=/path/to/your/my.cnf
ExecStop=/zytc/mysql8.1/bin/mysqladmin shutdown
Restart=on-failure
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target
# 开机自启动
systemctl enable mysql.service

# 启动 mysql 
systemctl start mysql

# 关闭 mysql 
systemctl stop mysql
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容