第一步
找到对应mysql下载路径:
MySQL Community Downloads
举例:
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
第二步
执行安装:
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
若上一步安装失败,建议清理一下以前的安装包,执行如下(非必须):
##查看已经安装过的mysql(具体文件根据查到的内容替换)
rpm -qa | grep -i mysql
sudo yum -y remove mysql80-community-release****.noarch
第三步
更新一下yum
yum clean all
yum makecache
第四步
查看mysql yum仓库中mysql版本
yum repolist all | grep mysql
enable是启用的版本,disable是禁用的版本,如果想修改可以使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态。
禁用:yum-config-manager --disable mysql80-community
启用:yum-config-manager --enable mysql57-community
第五步
使用yum 安装mysql
yum install mysql-community-server
安装过程如果没有报错,并提升 success 即安装成功。
第六步
开启mysql服务:
systemctl start mysqld.service
service mysqld stop #停止服务
service mysqld restart #重启服务
service mysqld start #启动服务
获取初始密码登录:
cat /var/log/mysqld.log | grep password
如有需要可简单化密码策略,例如 只限制长度:
mysql
mysql> set global validate_password.policy=0; #mysql8 此命令无效
默认端口是 3306,启动后需要检查防火墙配置,云服务端口映射等。
第七步 使用
mysql -u root -p #回车之后输入前面的初始密码也就是 Iv+(填自己的密码)
ALTER USER “root”@“localhost” IDENTIFIED BY “自己的密码”;
FLUSH PRIVILEGES; #立即生效
use mysql;
update user set host = ‘%’ where user =‘root’;
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘password’ PASSWORD EXPIRE NEVER; #更改加密方式
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘自己的密码’; #更新用户密码 (我这里为root )
跳过skip-grant-tables修改密码方式:
flush privileges; #刷新策略
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Xiwn@123' PASSWORD EXPIRE NEVER; 密码永不过期
常用命令和常见问题
CentOS 下 rpm包与 yum 安装与卸载:
rpm:
- 安装
rpm -ivh
- 移走一个包
rpm -e
- 卸载
rpm -qa|grep mysql
rpm -e mysql
yum:
yum install 包名
yum -y remove 包名
安装时出错:
--> Finished Dependency Resolution
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
Error: Package: mysql-community-libs-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libc.so.6(GLIBC_2.28)(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libtirpc.so.3(TIRPC_0.3.0)(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.22)(64bit)
Error: Package: mysql-community-client-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libncurses.so.6()(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libc.so.6(GLIBC_2.28)(64bit)
Error: Package: mysql-community-client-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.9)(64bit)
Error: Package: mysql-community-libs-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.11)(64bit)
Error: Package: mysql-community-client-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
Error: Package: mysql-community-libs-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
Error: Package: mysql-community-client-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.20)(64bit)
Error: Package: mysql-community-libs-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.9)(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libtirpc.so.3()(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.8)(64bit)
Error: Package: mysql-community-client-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libtinfo.so.6()(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(GLIBCXX_3.4.21)(64bit)
Error: Package: mysql-community-server-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libstdc++.so.6(CXXABI_1.3.9)(64bit)
Error: Package: mysql-community-client-8.0.19-1.el8.x86_64 (mysql80-community)
Requires: libc.so.6(GLIBC_2.28)(64bit)
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest
原因: centos 版本和mysql版本不一致,更换mysql 源即可。
密码输入报错
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
找到my.cnf 或my.ini centos在etc/my.cnf 修改文件,追加skip-grant-tables,重启mysql 服务
[mysqld]
skip-grant-tables