CentOS7的yum源中默認是沒有mysql的。為了解決這個問題,我們要先下載mysql的repo源。
1.下載並安裝MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
如果 wegt 未安裝的話可以先用 yum 安裝 wget :
yum install wget
2. 安裝mysql57-community-release-el7-10.noarch.rpm包
yum -y install mysql57-community-release-el7-10.noarch.rpm
安裝這個包后,會獲得兩個mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3. 安裝MySQL
yum -y install mysql-community-server
至此MySQL就安裝完成了,然后是對MySQL的一些設置。
4.重置MySQL密碼
在MySQL安裝完成后,第一次啟動MySQL時,會把密碼記錄到 /var/log/mysqld.log 文件中
首先啟動MySQL:
systemctl start mysqld.service
查看mysql運行狀態:
systemctl status mysqld.service
找出在日志文件中的密碼:
grep "password" /var/log/mysqld.log
進入數據庫
mysql -uroot -p
輸入初始密碼,此時不能做任何事情,因為MySQL默認必須修改密碼之后才能操作數據庫:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
登錄時有可能報這樣的錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2),原因是/var/lib/mysql的訪問權限問題。下面的命令把/var/lib/mysql的擁有者改為當前用戶:
chown -R root:root /var/lib/mysql
5. 開放3306端口
vi /etc/sysconfig/iptables
添加一下內容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存退出並重啟防火牆
systemctl restart iptables.service
6. 授權用戶遠程登錄
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'new password' WITH GRANT OPTION;
現在就可以從客戶機連接mysql服務器了,如果連接報這樣的錯:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.x.xxx' (113)。因為我們是centos7,請先確認防火牆是否開啟來,centos7默認是firewall,我們可以把它停止並禁止使用,然后啟動我們熟悉的iptables,這樣就好了!
1、直接關閉防火牆 systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall開機啟動 2、設置 iptables service yum -y install iptables-services 如果要修改防火牆配置,如增加防火牆端口3306 vi /etc/sysconfig/iptables 增加規則 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 保存退出后 systemctl restart iptables.service #重啟防火牆使配置生效 systemctl enable iptables.service #設置防火牆開機啟動 最后重啟系統使設置生效即可。