最近需要在 CentOS 7.9.2009 中安装MySQL,查网上资料都是copy and copy,如果直接按网上yum安装,要么安装的最新版,要安装低版本就不太容易。研究了一下,整理如下 :
mysql版本:mysql 8.0.23
安装步骤:
预先说明:安装过程中有提示y/n暂停时,都输入y回车
1、yum install yum-utils 安装yum配置管理器
2、从 https://dev.mysql.com/downloads/repo/yum/ 下载对应 操作系统版 本的yum库文件。请注意:centos属于redhat系列
实际上,可以不必下载到本地,可以点开download后,在“No thanks。。。”链接上点右键,选复制链接。
3、通过yum install 可以直接在线安装yum库
yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
如果您是下载到本地,可以上传到系统中后,上传到某个目录(比如:/opt 然后使用 yum install /opt/mysql80-community-release-el7-3.noarch.rpm 来进行安装。
4、(如果您 要安装最新版的mysql,可以跳过步骤4,直接到步骤5)通过yum-config-manager来启用禁用需要 的版本,假如我希望安装mysql5.7版 ,那命令如下:
#启用安装mysql5.7.x
shell> sudo yum-config-manager --enable mysql57-community
#禁止安装最新的mysql8.0.x
shell> sudo yum-config-manager --disable mysql80-community
5、yum install mysql-community-server 进行安装,基于第4步的配置后,yum会直接安装配置中所启用的版本而不需要 另行配置。
6、由于mysql8使用了caching-sha2-password的新密码认证,可能会无法进行远程管理连接或者应用程序无法连接,这种情况需要修改为旧的mysql5认证(即mysql_native_password模式 ),MySQL的配置文件默认在/etc目录下
vi /etc/my.conf 打开VI编辑器,使用快捷键 i 进入编辑器状态 找到:
# default-authentication-plugin=mysql_native_password
去掉表示注释的#号,变成
default-authentication-plugin=mysql_native_password
然后按esc键,输入:wq回车保存退出
7、输入 systemctl restart mysqld 启动mysql服务
8、对于mysql来说,将在启动时自动生成一个默认密码,密码保存于/var/log/mysqld.log 的日志文件中。查阅使用
cat /var/log/mysqld.log
您也可以使用SFTP下载后查看。
9、输入 mysql -uroot -p回车,输入步骤8中获得的密码,回车进入到mysql命令行环境。
10、mysql8 要求必须修改root用户密码后才可以 继续使用,那么,我们使用
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
来进行修改,需要说明一下,如果没有修改my.cnf,而某个用户需要设置为mysql_native_password 密码,可以 使用如下:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
来进行修改。默认策略下,您 的密码必须设置为有大小写字母+标点+数字,且必须大于等于8个长度,如果您在开发过程中,不需要这么高的策略,可以使用如下:
mysql> set global validate_password.policy=0; #修改安全策略级别为 低
mysql> set global validate_password.length=4; #修改密码最小长度为 4
mysql> flush privileges; #刷新策略表
11、Mysql有密码策略,我们在完成密码修改后,使用SHOW VARIABLES LIKE ‘validate_password%’; 来查看所有的策略,感觉不合适的,可以使用类似上面的命令来修改。
很明显,修改的方式为 set global 修改变量=值 ;
12、开启远程访问。
网上有文章 说使用 grant 来授权远程 访问,我使用未成功,使用简单粗暴的方式,登录mysql后:
use mysql;
update user set host="%" where user='root';
如果远程客户端无法连接 ,尝试使用下面指令关闭防火墙和selinux并重启操作系统:
shell> systemctl disable firewalld
shell> sed -i 's/^SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
至此,应该是可以连接上了。
评论区(0)