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
即可!