1. 程式人生 > >CentOS7下開啟防火牆 安裝mysql用yum安裝mysql(解決包依賴失敗的解決方法)

CentOS7下開啟防火牆 安裝mysql用yum安裝mysql(解決包依賴失敗的解決方法)

一.開啟防火牆:

CentOS7通過控制防火牆開啟埠很對TCP/IP協議訪問的操作很多,以前的OS版本也可以對iptables進行操作,現在OS7版本下不知道為什麼不行了。所以使用對firewalld進行操作。

1.firewall常用操作舉例

查詢狀態:# systemctl status firewalld啟動防火牆:# systemctl start  firewalld停止防火牆:# systemctl stop firewalld啟用防火牆:# systemctl enable firewalld禁用防火牆:# systemctl disable firewalld

檢視當前的開放埠:# firewall-cmd --zone=public --list-ports

新增埠到永久開放:# firewall-cmd --permanent --zone=public --add-port=XXXX/tcp --add-port=XXXXX/tcp

 新增服務到永久開房:# firewall-cmd --permanent --zone=public --add-service=samba

重啟並更新配置:# firewall-cmd --reload  

二.安裝mysql

第一步:解除安裝所有已經安裝的mysql

rpm -qa|grep -i mysql

查詢出的結果如果只有mysql-lib的包請忽略,如果沒有的話,繼續下面過程

用rpm -ev XXXXX(檔名)刪除上條命令中查到的所有檔案

如果解除安裝過程中遇到了

Failed dependencies:如下圖


那要根據提示先去解除安裝了它依賴的包。

有個簡單的方法:

find / -name mysql

查出一堆目錄的話,刪除上面的所有目錄

最後刪除my.cnf

使用下面指令

rm -rf /etc/my.cnf
第二步下載yum安裝包,如果沒有yum,自行安裝具體可百度谷歌

方便起見,使用wget下載

cd進你想要下載到的目錄裡面:

cd /homewget http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64

這是原來的思路- -後來發現,你不論如何下載,其實結果就是一樣的。因為他預設下載了最新版本的mysql,版本越新越不穩定,我們還是偏好不老不新的版本。

所以,這裡應該用官網的方法

首先去http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64下載你所需要的包:

然後執行

sudo yum localinstall mysql57-community-release-el7-{version-number}.noarch.rpm

version-number填成你的版本號,切記el7不要變成el6,這樣是版本不一致的,el6是針對centos6的。

然後查詢mysql的安裝源

shell> yum repolist all | grep mysql


如圖,你的可能不是這樣的,我們要安裝57,所以要把除57版本的mysql全部禁用,並開啟57版本。

比如下面的命令

sudo yum-config-manager --disable mysql56-community

禁用56版本

sudo yum-config-manager --enable mysql57-community

開啟57版本

當然你如果有dnf的話也可以用 sudo dnf config-manager之類的進行同樣的操作,結果是一樣的

三.檢視mysql源的可用性

yum repolist enabled | grep mysql

四安裝mysql

shell> sudo yum install mysql-community-server

開啟mysql

sudo service mysqld start

(這裡注意之前先開啟3306埠的防火牆,見上面的防火牆)

三.修改mysql的密碼:

安裝完成後是有一個預設的root登陸密碼的

這裡我們先使用下面命令

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

出現了上面的介面,我們可以看到一個密碼。這就是臨時密碼,複製該密碼

然後mysql -u root -p

輸入密碼中輸入你剛才複製的密碼

然後設定新的密碼

SETPASSWORDFOR'root'@'localhost' = PASSWORD('newpass');

如果出現了ERROR 1819

這個錯誤其實是由於validate_password_policy的設定,這個值預設是1的,要求你設定的密碼比如符合相應長度並且含有數字,小寫大寫字母和特殊字元

所以設定該值為0

setglobal validate_password_policy=0;

這樣再去修改密碼長度限制

set global validate_password_length=4;

再去修改上面的密碼即可。

然後退出mysql,重啟mysql即可

四.設定mysql的字符集為UTF-8

1.修改my.cnf

vim /etc/my.cnf

2.在mysqld的部分新增

character-set-server=utf8

3.在末尾新增client欄位

[client]default-character-set=utf8

4.登陸mysql檢視字元

show variables like "%character%";

觀察


然後是設定遠端連線資料庫

顯示登陸mysql

mysql -u root -p

輸入密碼

use mysql

select User,Host from user


然後修改Host

UPDATE user SET host='%' where user='root';select User, Host from user;


五。設定開機自啟動

chkconfig --list | grep mysqld

現在可見是off的,開啟開機啟動

chkconfig mysqld on

即可。