centos7系統安裝mysql8(親測)
(centos是基於紅帽系統開發的)
step one:
.首先卸載centos7中自帶的mariadb
rpm -qa|grep mariadb //查詢出來已安裝的mariadb
rpm -e --nodeps 文件名 //卸載mariadb,文件名爲上述命令查詢出來的文件
3.查看是否已經安裝了mysql
rpm -qa | grep -i mysql
查找mysql文件,使用rm -rf mysql文件路徑刪除
find / -name mysql
刪除分散mysql文件
find / -name mysql / # whereis mysql
刪除配置文檔
rm -rf /etc/my.cnf
再次查找機器是否安裝mysql
rpm -qa|grep -i mysql
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
step two:
.下載 rpm 包
在MySQL官網中下載YUM源rpm安裝包:http://dev.mysql.com/downloads/repo/yum/
在官網找到對應的 MySQL 的源,我們選擇 mysql80-community-release-el7-1.noarch.rpm 社區免費正式發佈版8.0
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
安裝 rpm 包
yum localinstall mysql80-community-release-el7-1.noarch.rpm
**(該步可能會報錯:warning: mysql80-community-release-el7-1.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY這是由於yum安裝了舊版本的GPG keys造成的 ) (解決方法:rpm --import /etc/pki/rpm-gpg/RPM* 引用後再安裝)
vim /etc/yum.repos.d/mysql-community.repo (找到 [mysql80-community] 確保 enabled=1)
查看是否安裝到位
yum repolist enabled | grep "mysql.*-community.*"
修改安裝版本(非必須)
如果需要安裝指定版本的mysql,可以修改/etc/yum.repos.d/mysql-community.repo源,改變默認安裝的mysql版本。
例如要安裝5.7版本,將5.7源的enabled=0改成enabled=1,將8.0的enabled=1改成enabled=0即可
安裝 mysql-server
yum install mysql-community-server (太慢了)
#// 或yum install mysql-server
啓 MySQL 服務
systemctl start mysqld
設置開機啓動
systemctl enable mysqld
systemctl daemon-reload
ps:如果安裝好後 無法啓動
1把 vim /etc/my.cnf 里加的東西先刪除
2安裝後已經啓動mysql後有數據的需要刪除數據並初始化mysql
刪除 MySQL的數據 /var/lib/mysql
rm -rf /var/lib/mysql
再重啓
5、修改root本地登錄密碼
mysql安裝完成之後,在/var/log/mysqld.log文件中給root生成了一個默認密碼。通過下面的方式找到root默認密碼,然後登錄mysql進行修改:
shell> grep 'temporary password' /var/log/mysqld.log
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
或者
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
注意:mysql8修改密碼策略
show global variables like '%validate_password%';
#驗證策略 0-->low 1-->MEDIUM 2-->strong
set global validate_password.policy=0;
#密碼最小長度
set global validate_password.length=3;
查看密碼策略(修改臨時密碼之後纔可查看)
show variables like 'validate_password%';
8之前 validate_password_ 8之後validate_password.
修改密碼策略
set global validate_password.policy=0;(0或LOW代表低級)
密碼驗證策略低要求
set global validate_password.mixed_case_count=0;
密碼至少要包含的小寫字母個數和大寫字母個數
set global validate_password.number_count=0;
密碼至少要包含的數字個數。
set global validate_password.special_char_count=0;
密碼至少要包含的特殊字符數
set global validate_password.length=6;
密碼長度
修改密碼
ALTER user 'root'@'localhost' IDENTIFIED BY '密碼'
密碼不能使用root
6、添加遠程登錄用戶
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,爲了安全起見,我添加一個新的帳戶:
mysql8和原來的版本有點不一樣,8的安全級別更高,所以在創建遠程連接用戶的時候,
不能用原來的命令(同時創建用戶和賦權):
mysql>grant all PRIVILEGES on *.* to guaiyouyisi@'%' identified by '123456';
必須先創建用戶(密碼規則:mysql8.0以上密碼策略限制必須要大小寫加數字特殊符號):
mysql>create user guaiyouyisi@'%' identified by 'Guaiyouyisi.';
再進行賦值:
mysql>grant all privileges on *.* to guaiyouyisi@'%' with grant option;
最後刷新一下:
mysql>flush privileges;
當你進行遠程連接是,會出現這樣的錯誤:
Unable to load authentication plugin 'caching_sha2_password'.
是因爲mysql8使用的是caching_sha2_password加密規則,最簡單的方法是修改遠程連接用戶的加密規則:
mysql>ALTER USER 'guaiyouyisi'@'%' IDENTIFIED WITH mysql_native_password BY 'Guaiyouyisi.';
7、配置默認編碼爲utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加編碼配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
重新啓動mysql服務,查看數據庫默認編碼如下所示:
默認配置文件路徑:
配置文件:/etc/my.cnf
日誌文件:/var/log//var/log/mysqld.log
服務啓動腳本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid