由于我的项目对数据库版本有限制,需要在先前安装5.7的基础上再安装一个8.0.28版本的数据库。
安装5.7版本数据库的过程:华为云服务器部署mysql_瓜是西瓜的瓜的博客-CSDN博客
服务器版本:CentOS 7
将/etc/selinux/config里的SELINUX设置成:disabled
命令:vim /etc/selinux/config
下载mysql: MySQL :: Download MySQL Community Server (Archived Versions)
解压并移动到文件夹中重命名,我下载到的是 .xz 文件,因此需要使用 tar -xf xxx.xz 命令去解压
因为已有5.7版本数据库,因此将数据库命名为“mysql80”进行区分
在MySQL安装目录下创建存储数据库数据的新目录data/:
新建并编辑 my.cnf 文件并赋予执行权限(MySQL8.0的配置文件):
cd /usr/local/mysql80/
vim my.cnf
my.cnf配置内容
[mysqld] basedir=/usr/local/mysql80/ datadir=/usr/local/mysql80/data/ port=3307 socket=/tmp/mysql80.sock character-set-server=UTF8MB4 symbolic-links=0 log-bin=/usr/local/mysql80/mysql-bin server-id=1 gtid_mode=on enforce_gtid_consistency=on [mysqld_safe] log-error=/usr/local/mysql80/data/error.log pid-file=/usr/local/mysql80/data/mysqld.pid tmpdir=/tmp/mysql80
赋予权限
chmod 755 my.cnf
对照以下内容,修改/usr/local/mysql80/support-files/mysql.server文件:
vim /usr/local/mysql80/support-files/mysql.server
修改内容:
…… basedir=/usr/local/mysql80 datadir=/usr/local/mysql80/data …… lockdir='/var/lock/subsys' lock_file_path="$lockdir/mysql80" …… mysqld_pid_file_path=/usr/local/mysql80/data/mysqld.pid …… conf=/usr/local/mysql80/my.cnf ……
将修改之后的文件复制到 /etc/init.d/ 目录,再将复制过去的文件重命名为mysql80:
(若先前未将5.7版本的文件修改为mysql57,建议先重命名再复制,或者先将5.7的sql.server文件重命名再复制8.0版本的文件)
cp /usr/local/mysql80/support-files/mysql.server /etc/init.d/
mv /etc/init.d/mysql.server /etc/init.d/mysql80
初始化MySQL8.0,记得保存如下图框出来位置的初始化密码,登录的时候要用这个密码登录:
/usr/local/mysql80/bin/mysqld --defaults-file=/usr/local/mysql80/my.cnf --user=root --initialize
初始密码一定要记住咯
找到datadir目录进入,cd /usr/local/mysql/data/mysql/ 删除所有,重新初始化,生成新的临时密码。
初始化完成后,mysql8.0就相当于安装完成了
输入密码不显示,直接粘贴原先的初始化密码就行,5.7和8.0类似:
service mysql80 start
因为要同时安装5.7和8.0,所以要选择登录的是哪个目录下的MySQL,8.0的目录是mysql80、端口号是3307。
这些内容都是在配置文件中定义的。
指定本地IP是使用tcp/ip方式登录,也可以通过指定socket文件的方式登录。
#/usr/local/mysql80/bin/mysql -S/tmp/mysql80.sock -u root -p
#/usr/local/mysql80/bin/mysql -u root -p -h 127.0.0.1 -P 3307
系统默认在 /usr/bin 目录下查找命令,所以在 /usr/bin 目录下给 mysql80 的启动程序设置一个软链接(类似Windows的快捷方式),再将软链接的名称改一下,/usr/bin/目录下8.0的mysql软链接名字改成mysql80,方便区分5.7和8.0。
#建立软连接
ln -s /usr/local/mysql80/bin/mysql /usr/bin
#重命名mysql文件夹
mv /usr/bin/mysql /usr/bin/mysql80
#测试一下,查看安装的MySQL版本号
mysql80 -V
登录(输入密码不显示,直接粘贴原先的初始化密码回车就行)
mysql80 -uroot -p -S/tmp/mysql80.sock
#更改root用户的默认密码为333333
mysql> set password for 'root'@'localhost'='333333';
#退出
mysql> exit
允许其他所有机器连接本机MySQL8.0,这样物理机的Navicat就可以连接虚拟机的MySQL8.0了
mysql> use mysql;
mysql> update user set host='%' where user='root' and host='localhost'; #允许所有机器连接本虚拟机的MySQL
mysql> flush privileges; #刷新权限
mysql> select user,host from user;
root用户的host修改完毕之后就可以使用Navicat正常连接使用mysql了。
具体的Navicat连接过程不明白的话可以参考我的另一篇文章:华为云服务器部署mysql_瓜是西瓜的瓜的博客-CSDN博客
第8部分,使用本地Navicat连接数据库