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