https://downloads.mysql.com/archives/community/是社区版的官网,可以选择版本下载。
cat /etc/redhat-release
可以看到系统版本是CentOS Linux release 7.6.1810 (Core)
,uname -r
可以看到版本是3.10.0-957.el7.x86_64
。
yum remove -y mysql-libs
把默认mariadb
安装的一些组件卸载。
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar
下载安装组件。
mkdir /mysql8031
创建专门的tar解压之后存储目录,tar -xf mysql-8.0.31-1.el7.x86_64.rpm-bundle.tar -C /mysql8031
解压到特定的目录下,cd /mysql8031
切换工作目录,相当于进入这个目录,ls -l /mysql8031
可以看一下解压之后的目录内容。
安装顺序为:common => client-plugins => libs => client => icu-data-files => server
,安装命令依次如下:
rpm -ivh mysql-community-common-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm
,发现出现/sbin/ldconfig: /lib64/libstdc++.so.6 is not a symbolic link
的提示,我这里的原因是因为自己使用源码把gcc的版本提升到12.2.0
时没有指明链接库的正确网址。
cat << EOF >> /etc/ld.so.conf
把/usr/local/gcc-12.2/lib64/
添加到/etc/ld.so.conf
里边。
ldconfig
进行配置文件加载,发现还是报ldconfig: /lib64/libstdc++.so.6 is not a symbolic link
。
rm -rf /lib64/libstdc++.so.6
把文件删除。
ln -s /usr/local/gcc-12.2/lib/libstdc++.so.6 /lib64/libstdc++.so.6
创建软链接。
ldconfig
重新加载配置文件。
rpm -e mysql-community-libs-8.0.31-1.el7.x86_64
卸载。
rpm -ivh mysql-community-libs-8.0.31-1.el7.x86_64.rpm
重新安装。
rpm -ivh mysql-community-client-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.31-1.el7.x86_64.rpm
systemctl start mysqld
启动MySQL服务器端。
systemctl status mysqld
看到MySQL服务器端状态是active (running)
。
cat /var/log/mysqld.log | grep password
查看随机生成的密码,我的随机密码是jIMsl8Ti(wj(
。
使用mysql -u root -p
连接客户端,并且输入密码jIMsl8Ti(wj(
之后进入。注意密码在输入过程中不可见。
修改密码使用的命令格式是ALTER USER '用户名'@'ip地址' IDENTIFIED BY '密码';
例如我使用的命令是ALTER USER 'root'@'localhost' IDENTIFIED BY 'ILoveyou#3';
这个命令,意思就是就是把本地的root
用户密码修改为ILoveyou#3
。
show databases;
可以看一下所有数据库。
使用grant all privileges on *.* to 'root'@'%' identified by 'ILoveyou#3' with grant option;
报错如下:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'ILoveyou#3' with grant option' at line 1
参考博客《MySQL8.0 :grant all privileges on . to 报错问题》
CREATE USER 'gooduser'@'%' IDENTIFIED BY 'Good#1103';
创建用户gooduser
,密码为Good#1103
。grant all privileges on *.* to 'gooduser'@'%';
开启任何IP连接MySQL的权限。使用flush privileges;
进行刷新,否则权限就没有生效。
quit
可以退出MySQL
命令行。
mysql -u gooduser -p
,然后输入密码Good#1103
进行测试,成功登录。