避免服务器安装多个mysql引起冲突的安装方法
最近工作中涉及到了数据迁移的工作. 需要升级mysql版本到8.4.2为了避免升级后服务出现异常, 因此需要保留原来的mysql,所以会出现一台服务器上运行两个mysql的情况
mysql并不陌生, 但是安装不当很容易引起服务配置文件的冲突,导致服务不可用, 今天就来介绍一种可以完美避免冲突的方法来安装mysql
安装mysql8.4.2
查看glibc版本
ldd --version
cd /data
下载
如果glibc版本2.17
wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.2-linux-glibc2.17-x86_64.tar.xz
如果glibc版本2.28
wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.2-linux-glibc2.28-x86_64.tar.xz
解压
tar -xf mysql-8.4.2-linux-glibc2.17-x86_64
mv mysql-8.4.2-linux-glibc2.17-x86_64 mysql8
cd mysql8
创建配置文件
vim my.cnf
[client]
port=3306
socket=/data/mysql8/mysql.sock
[mysqld]
#skip-grant-tables
datadir=/data/mysql8/data
socket=/data/mysql8/mysql.sock
port=3306
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
symbolic-links=0
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8mb4
max_connections = 3000
innodb_buffer_pool_size = 2048M
innodb_thread_concurrency = 8
join_buffer_size = 2M
log-bin=/data/mysql8/data/mysql-bin
server-id=3
ssl-ca=/data/mysql8/data/ca.pem
ssl-cert=/data/mysql8/data/server-cert.pem
ssl-key=/data/mysql8/data/server-key.pem
local-infile=0
# 登录失败锁定次数
#connection_control_failed_connections_threshold = 5
# 锁定时间 单位毫秒 10分钟
#connection_control_min_connection_delay = 600000
# 设置空闲会话超时时间为900秒(即15分钟)
wait_timeout = 900
interactive_timeout = 900
log-error=/data/mysql8/mysql.log
pid-file=/data/mysql8/mysql.pid
分配权限
chown -R mysql:mysql /data/mysql8/
chmod -R 755 /data/mysql8/
初始化mysql
cd /data/mysql8/bin
./mysqld --defaults-file=/data/mysql8/my.cnf --user=mysql --initialize
查看密码
cat /data/mysql8/mysql.log
启动mysql8
防止mysql去读默认配置文件/etc/my.cnf
编辑启动脚本
vim /lib/systemd/system/mysql8.service
[Unit]
Description=MySQL8.4.2 Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart= /data/mysql8/bin/mysqld --defaults-file=/data/mysql8/my.cnf
Restart=always
PrivateTmp=true
[Install]
WantedBy=multi-user.target
刷新服务单元
systemctl daemon-reload
启动服务
systemctl start mysql8 #启动服务
systemctl enable mysql8 #开机自启动
systemctl restart mysql8 #重启服务
systemctl stop mysql8 #停止服务
systemctl status mysql8 #查看启动状态
修改密码修改root远程连接
登录mysql,防止默认etc/my.cnf
./mysql --defaults-file=/data/mysql8/my.cnf -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
flush privileges;