linux上安装不同版本的MySQL(以已安装了MySQL8为例,以下为安装MySQL5的具体教程)
-
官网下载二进制包
-
解压
-
修改配置文件
my.cnf
[client] port=3307 socket=/tmp/mysql3307.sock #### mysql8 mysqlx_port=33070 mysqlx_socket=/tmp/mysqlx33070.sock #### [mysqld] prot=3307 socket=/tmp/mysql3307.sock #### mysql8 mysqlx_port=33070 mysqlx_socket=/tmp/mysqlx33070.sock #### datadir=/usr/local/mysql5/data basedir=/usr/local/mysql5 slow-query-log-file=/usr/local/mysql5/data/slowquery.log innodb_data_home_dir=/usr/local/mysql8/data
-
修改启动文件
/usr/local/mysql5/support-files/mysql.server
(下面为启动文件中需要修改的部分)basedir=/usr/local/mysql5 datadir=/usr/local/mysql5/data -------------------------------------------- lock_file_path="$lockdir/mysql5" -------------------------------------------- mysqld_pid_file_path="/usr/local/mysql5/data/mysqld.pid" if test -z "$basedir" then basedir=/usr/local/mysql5 bindir=/usr/local/mysql5/bin if test -z "$datadir" then datadir=/usr/local/mysql5/data fi sbindir=/usr/local/mysql5/bin libexecdir=/usr/local/mysql5/bin -------------------------------------------- conf=/usr/local/mysql5/my.cnf
-
初始化数据库
/usr/local/mysql5/bin/mysqld --defaults-file=/usr/local/mysql5/my.cnf --user=mysql --initialize
注意记录初始密码
-
注册服务
-
sysvinit
cp /usr/local/mysql5/suppor-files/mysql.server /etc/init.d/mysql5
-
systemd
vim /usr/lib/systemd/system/mysqld5.service [Unit] Description=MySQL5 server After=syslog.target network.target [Service] User=mysql5 Group=mysql Type=forking TimeoutSec=0 #PermissionsStartOnly=true ExecStart=/usr/local/mysql5/bin/mysqld --defaults-file=/usr/local/mysql5/conf/my.cnf --daemonize LimitNOFILE = 65535 Restart=on-failure RestartSec=3 RestartPreventExitStatus=1 PrivateTmp=false [Install] WantedBy=multi-user.target
-
-
设置开机自启动
-
sysvinit
chkconfig --add mysql5
-
systemd
systemctl enable mysql5
-
-
启动服务
-
sysvinit
service mysql5 start
-
systemd
systemctl start mysql5
-
-
连接数据库
mysql --socket=/tmp/mysql3307.sock -uroot -p # 或者 mysql -h:: -P3307 -uroot -p # 不知道为什么在linux中必须要指定host后,指定的端口才会生效
-
修改密码
alter user root@localhost identified by 'pwd';
-
允许远程登录
use mysql; select user, host, plugin from user; update user set host='%' where user='root'; # %为通配符,可指定具体的ip
-
开放防火墙中对应的端口
firewall-cmd --add-port=3307/tcp --zone=public --permanent firewall-cmd --reload firewall-cmd --list-port