服务器安装mysql遇到的问题及解决方案

突然发现自己的服务器吃土太久了  搬出来用用Zzzzzz

太久不安装配置Mysql的东西。一来就有问题23333

一、下载Mysql

这里我使用的是yum在线安装的方式,所以先下载mysql的rpm包安装到yum仓库里

https://dev.mysql.com/downloads/repo/yum/

我服务器的系统是centOS 7.3 不新不旧 选linux7就完了。

二、安装Mysql

用刚刚的链接地址

 

wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

 

如果提示wget:未找到命令

就先安装wget: yum -y install wget      然后再执行上面的命令

yum仓库安装mysql源

yum -y localinstall mysql80-community-release-el7-3.noarch.rpm

 

三、安装mysql

 

yum -y install mysql-community-server

 

拼网速的时候到了zzzz

四、启动mysql

systemctl start mysqld     //启动

五、设置开机启动

systemctl enable mysqld

systemctl daemon-reload

六、修改root用户密码

安装完mysql后 先 vim /var/log/mysqld.log

里面有一个自动生成的临时密码。

怕输错就复制下来,注意:这串密码可能带有特殊字符 “ ; ” 我一开始没注意密码总是错233333

接下来输入.  

mysql -u root -p

粘贴刚刚复制的临时密码进入。

mysql> alter user 'root'@localhost identified by 'password';

Query OK, 0 rows affected (0.00 sec)

password是你要修改的密码(这里要注意mysql5.7之后的密码策略默认必须大小写英文字母和数字加特殊字符混合)

七、设置远程登陆

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

老版本的mysql这句sql应该能执行,但新版的不行。比如我的8.0.

新版的mysql需要把创建用户和赋予权限分开。

因此解决方案是:

  1. create user ‘root’@’%’ identified by ‘password’;  (远程访问主机如果有要求就设置成自己的ip   不然就设置成 %)

     2.   grant all on  *.*  to ‘root’@’%’ ;   (如果是修改权限后面加(with grant option))

然后执行 

mysql>show databases;

mysql>use mysql;

mysql>select user,host from user;

可以看到已经有了  root %  如果没有需要重新执行上面创建用户和赋予权限的操作。

然后 exit

八、配置一下mysql的编码格式

vim  /etc/my.cnf

在[mysqld]下面添加下面两行

character_set_server=utf8

init_connect='SET NAMES utf8'

保存后重启mysql 

systemctl restart mysqld

九、服务器安全组中打开3306端口。

我们需要开启防火墙的3306端口:

firewall-cmd --zone=public --add-port=3306/tcp —permanent

如果显示 not running.   执行service firewalld start

重新加载:     firewall-cmd —reload

成功会显示success

查询一下接口是否已开启:  firewall-cmd —query-port=3306/tcp

开启会显示yes

然后是服务器安全组的配置:

 

基本流程就是这样,如果连接不成功先从服务器的端口是否打开,防火墙是否添加3306端口这些问题找起。

补充:当然不会这么简单,肯定还可能会出问题23333Zzzzzzz

以上安装配置如果mysql8.0之前的那么基本不会出错。但我就喜欢踩雷。

我第一次连接数据库时报Authentication plugin 'caching_sha2_password' cannot be loaded的错误。

这个错误的原因很明了。navicat不支持这个加密规则。

这个问题的解决方案有两个,一种是升级navicat驱动(ps:我的都是navicat premium 15了,还是8行),另一种就是修改mysql的加密规则,这里就选择第二种方式了。

进入  mysql -u root -p   输入密码

修改加密规则:

ALTER USER ‘root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;  

更新用户密码:

ALTER USER ‘root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 

这里如果修改时报密码强度不满足的错时,如果你想使用简单的密码,那就按以下修改

密码强度的规则具体解释

 

mysql> set global validate_password_mixed_case_count=0;

mysql> set global validate_password_special_char_count=0;  

我自己修改了大小写混合还有特殊字符的规则,改成0就是减去了这个规则。

之后就能修改上述不满足密码强度的问题。然后去数据库管理工具测试。

参考:weakup 的centOS 7.3 安装配置mysql