一直想在别的电脑上安装一个数据,用于测试,但总是各种原因,没有做,只能在自己电脑上安装测试。今天买了台centos测试服务器,于是,花了点时间安装了mysql8,并将步骤一一记录。安装过程有很多中方法,我选用最简单的一种。
一、下载适合自己系统的mysql安装包
由于我的系统是centOS,所以这里我选了Red Hat,版本为mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar
二、检查系统中是否已经有安装mysql
linux 中使用命令 ls -l | grep mysql 查看是否有其他的mysql文件,由于我的系统是新装的,所以没有找到任何mysql文件。
三、安装mysql8
1、 通过xftp或其他工具将文件上传到linux系统中。
2、解压
tar -xvf mysql-8.0.21-1.el7.x86_64.rpm-bundle.tar
解压后会在目录中出现以下文件:
3、安装
安装使用命令:rpm -vih 包
由于这些包之间会有依赖,所以安装时要按照以下步骤进行:
rpm -vih mysql-community-common-8.0.13-1.el7.x86_64
rpm -vih mysql-community-libs-8.0.13-1.el7.x86_64
rpm -vih mysql-community-libs-compat-8.0.13-1.el7.x86_64
rpm -vih mysql-community-client-8.0.13-1.el7.x86_64
rpm -vih mysql-community-embedded-compat-8.0.13-1.el7.x86_64
rpm -vih mysql-community-server-8.0.13-1.el7.x86_64
其中像test、devel 包没有安装,我觉得没什么用。
安装过程中遇到以下问题:
由于linux 系统默认内部集成了mariaDB 数据库,与mysql冲突,解决该问题的方法就是卸载mariaDB 。
首先查看mariaDB,使用命令rpm -qa | grep mariadb,在我的系统中找到的版本为 mariadb-libs-5.5.56-2.el7.x86_64
卸载:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
4、安装完成后,启动服务
使用命令:service mysqld restart
查看服务状态:service mysqld status
四、使用mysql
1、新安装的数据库root密码查看
通过grep命令查找mysql日志文件,找到数据库密码:
grep 'temporary password' /var/log/mysqld.log
2、进入mysql数据库
使用命令:mysql -uroot -p
输入刚才查找到的密码。
进去之后需要先修改密码才能做其他操作。
3、修改root密码
命令:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘密码’; 修改密码的时候,密码必须包含大小写,数字及特殊字符,否则会修改失败。并提示您的密码不满足当前策略的要求
修改完成后就可以使用了。
五、遇到的坑
1、使用navcat 无法连接mysql8,修改加密规则。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新一下用户的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
刷新权限(刷新权限命令,是对mysql数据库中默认配置项修改后,使用该命令进行刷新,可即时生效)
FLUSH PRIVILEGES;
解决这个问题,也可以执行下面命令重置用户密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '%hsdh#shjKSdf123123';
2、mysql 8 设置大小写不敏感
编辑vim /etc/my.cnf,添加如下行。
重启服务。
如果不成功,可以做以下操作:
rm -rf /var/lib/mysql 删库,前提是数据库没有重要的数据。
vim /etc/my.cnf 在编辑加入上面的内容。重启服务。
这样的话你之前设置的用户名密码都会重置,所以你需要重新设置,设置步骤如下:
grep 'temporary password' /var/log/mysqld.log 通过该命令查询默认生成的密码。
mysql -uroot -p 通过该命令输入密码登录。
alter user user() identified by '%hsdh#shjKSdf123123'; 输入该命令修改默认密码。
use mysql ;
update user set host='%' where user='root'; 主机可访问用户
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Kagday@123456';修改密码规则,可以用navcat登录
flush privileges; 刷新权限
3、连接10060错误的解决
检查网络:ping id
检查下用户权限: select host,user from user;
检查CentOS防火墙:
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload