Centos7Yum安装Mysql8

1、去官网下载rpm文件,该文件专门用于yum安装方式:

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

然后拉到最下面,我下载的是第一个:Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent)

 

2、下载好rpm文件之后使用FTP传到服务器,yum安装该文件

yum -y install mysql80-community-release-el7-1.noarch.rpm

 

3、安装MySQL服务器

 yum -y install mysql-community-server

 

4、安装完成之后启动MySQL服务,这边提示下centOS7以下的版本用的是service命令,centOS7开始需要使用systemctl命令。

#启动MySQL服务
systemctl start  mysqld.service

 

5、查看运行状态

systemctl status mysqld.service

 

6、查询MySQL密码

grep "password" /var/log/mysqld.log

 

7、设置MySQL密码

用刚刚查询到的密码登录MySQL

mysql -uroot -p
//大写字母、数字、符号的结合(新的加密方式)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '
Rmdb-3897'; 

 

 8、如果要使用Navicate或者PhpMyAdmin远程连接数据库,可以新建一个用户,并开启远程连接

 

创建用户:

 

CREATE USER 'xxx'@'%' IDENTIFIED WITH mysql_native_password BY 'xxx123456@';

 

授权远程数据库:

 

 #授权所有权限 
GRANT ALL PRIVILEGES ON *.* TO 'xxx'@'%';
#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxx'@'%';

 

查看用户权限

show grants for 'xxx'@'%';

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码 

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 
'mypassword' WITH GRANT OPTION; 

最后刷新权限

FLUSH PRIVILEGES; 

 

Laravel的坑:

1、Authentication type:
用户的 Authentication type 默认为 caching_sha2_password,导致数据库连接错误,抛出如下异常:
Illuminate\Database\QueryException : SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

解决方案:修改密码认证方式
ALTER USER 'YOURUSERNAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOURPASSWORD';

 

2、删除了 NO_AUTO_CREATE_USER 模式
在 5.7.*的日志中提到已废除该模式,在8.0.11中删除了,迁移时会抛出如下异常:
Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1231 Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

解决方案:将 config/database.php 配置文件中mysql 的 strict 的值改为false即可!

 

参考文章:通过yum源在centOS7安装mysql8

posted @ 2018-12-11 14:32  郁冬  阅读(3386)  评论(0编辑  收藏  举报