一、部署 Mysql 8
安装版本:mysql-8.0.30
安装位置:/usr/local/mysql8
数据位置:/data/mysql8_data/mysql
日志位置:/data/mysql8_data/mysql/mysql.log
配置文件:/etc/my.cnf
1. 卸载之前的包
rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
rpm -qa|grep mariadb
2. 解压并重命名
cd /opt;tar -Jxvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz
mv mysql-8.0.30-linux-glibc2.17-x86_64-minimal /usr/local/mysql8
3.设置环境变量并查看版本
vi /etc/profile 追加PATH=$PATH:/usr/local/mysql8/bin
source /etc/profile
mysql --version
4.创建用户组、用户
groupadd mysql
useradd -r -g mysql mysql
5. 创建数据保存目录 更改属组和权限
mkdir -p /data/mysql8_data
chown -R mysql:mysql /data/mysql8_data
chmod -R 750 /data/mysql8_data
6.配置文件
vi /etc/my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /usr/local/mysql8
# 数据存放目录
datadir = /data/mysql8_data/mysql
log-bin = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
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 = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
# 设置binlog过期时间,单位秒
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
7. 初始化
mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
8. 查看并临时关闭selinux 和永久关闭 selinux
getenforce
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
9.设置用systemctl启动
vi /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL
SourcePath=/etc/init.d/mysql
Before=shutdown.target
[Service]
User=mysql
Type=forking
TimeoutSec=0
PermissionsStartOnly=true
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --daemonize
ExecStop=/etc/init.d/mysql stop
LimitNOFILE = 65535
Restart=on-failure
RestartSec=10
RestartPreventExitStatus=1
PrivateTmp=false
[Install]
WantedBy=multi-user.target
10. 先刷新再启动
systemctl daemon-reload
systemctl status mysql.service
启动:systemctl start mysql.service
11.无密码模式进入
mysql -u root –skip-password
12.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test!@#dev30';
FLUSH PRIVILEGES;
参考链接:
https://www.cnblogs.com/secretmrj/p/15600144.html 用tar包的形式
https://blog.csdn.net/COCO56/article/details/124723589 用rpm包的形式
https://www.cnblogs.com/dbsqler/p/024038a250610f5ca3242a31cb305146.html mysql8.0主从搭建