系統: CentOS 7(在CentOS 7中默認有安裝MariaDB,這個是mysql的分支,通常來講仍是使用本身安裝的MySQL比較好)java
一、下載並安裝MySQLmysql
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
下載到指定位置後,就能夠執行安裝了sql
yum -y install mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
安裝完成後,以前的MariaDB就會被覆蓋掉數據庫
二、啓動MySQL學習
啓動MySQL服務:systemctl start mysqld.service測試
查看MySQL服務:systemctl status mysqld.servicespa
查看MySQL是否是開機自啓,能夠執行命令查看開機自啓列表code
systemctl list-unit-files|grep enabled
此時若是要進入MySQL得找出root用戶的密碼,輸入命令server
grep "password" /var/log/mysqld.log
獲得密碼後,登陸mysql,輸入命令blog
mysql -uroot -p
而後回車,提示你輸入密碼,記得不要輸錯,輸入時密碼是不顯示的。登陸成功以下圖
此時,你須要給你的MySql從新設置密碼,由於MySQL默認的就是必須修改密碼後才能操做數據庫。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Left@zuo123.';
設置密碼的時候須要遵照MySQL密碼設置規範,若是不符合規範是不能修改爲功的。
以下圖,我將密碼設置爲123456,它提示我 密碼不符合規範
總之呢,咱們先將密碼設置成比較複雜的就好,好比 Abc@123...,先登陸了再說。
若是想要設置簡單好記的密碼,能夠修改密碼設置規範,畢竟你不登陸你就不能修改規範。
查看密碼規範
SHOW VARIABLES LIKE 'validate_password%';
密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是: validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count) 這時候咱們將密碼設置規範修改一下: set global validate_password.policy=0; set global validate_password.length=1;
這時候就能夠設置簡單的密碼了,好比123456
最後一步,設置容許遠程鏈接。
若是直接使用命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; 會提示一個語法錯誤,有人說是mysql8的分配權限不能帶密碼隱士建立帳號了,要先建立帳號再設置權限。也有的說8.0.11以後移除了grant 添加用戶的功能。
建立新用戶 admin
建立用戶:CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
容許遠程鏈接:GRANT ALL ON *.* TO 'admin'@'%';
本人測試過,使用 update user set host = '%' where user = 'root'; 也能夠修改
若是使用客戶端鏈接提示了plugin caching_sha2_password錯誤,這是由於MySQL8.0的密碼策略默認爲caching_sha2_password
使用命令修改策略
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
箭頭指的兩個用戶是我修改過的
而後關閉防火牆,測試鏈接成功!!
文章爲學習記錄,若有錯誤,還望指出!!