1.現在centos上默認是沒有yum源的,yum安裝的是 MariaDB拾给。所以我們需要自己先配置yum源。配置yum源步驟如下:(參考自風Boy)
下載yum源:
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
安裝yum源
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
查看有哪些版本的mysql:
yum repolist all | grep mysql
2.安裝
我默認使用安裝mysql5.7 這里如果帶寬小的話兔沃,會很慢,而且試驗結果是阿里云比騰訊云快级及。
yum install -y mysql-community-server
3.啟動mysql,要知道在centos7中乒疏,沒有了service命令,都是使用systemctl命令饮焦。注意啟動的時候是start mysqld而不是mysql怕吴。
而在centos6中窍侧,使用service mysqld start
systemctl start mysqld
查看狀態(tài)
systemctl status mysqld
如圖所示,是已經啟動了
4.登錄數據庫转绷,修改數據庫密碼
mysql5.7的新特性之一就是在初始化的時候會生成一個自定義的密碼伟件,然后你需要找到這個密碼,登錄的時候輸入议经。注意斧账,輸入密碼的時候是不顯示。
找到密碼: 紅框的地方就是密碼
grep 'temporary password' /var/log/mysqld.log
登錄數據庫:這里-p之后不用輸入密碼煞肾,回車后再輸入咧织。改過密碼之后登錄則是直接在-p后加密碼了。
mysql -uroot -p
修改密碼
注意籍救,修改的密碼太簡單會不給修改习绢,把大小寫字母和數字加上就肯定可以了。然后切記切記蝙昙,mysql里面的命令要加分號闪萄!分號!分號奇颠!
SET PASSWORD = PASSWORD('Admin123!');
設置遠程可以登錄
現在這樣是無法在本地用工具登錄訪問的败去,現在要做兩件事,一件事是將云服務器上的3306端口開放大刊;另一件事是配置遠程可以訪問为迈。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin123!' WITH GRANT OPTION;
flush privileges;
先設置剛才的密碼可以遠程登錄,然后使用flush命令使配置立即生效缺菌。
如果還不行可以嘗試重啟一下數據庫葫辐。
5.修改一些簡單的配置:
mysql的配置文件真的很多,有的還很蛋疼伴郁。比如默認的字符集是拉丁字符集耿战,每次創(chuàng)建數據庫的時候要設置字符集;默認還不支持group by語句焊傅,默認的時區(qū)也不是我們現在的北京時間(東八區(qū))剂陡,會導致我們的時間差了13個點。針對以上說幾個簡要的配置狐胎,更多的配置在以后遇到了再加上鸭栖,或者留言吧!
先輸入exit退出數據庫客戶端握巢。
打開配置文件晕鹊,yum安裝的默認在/etc文件夾下:
vim /etc/my.cnf
在[mysqld]下面添加,不需要分號
字符集:注意是utf8而不是utf-8!
character-set-server=utf8
這時候使用show variables like 'char%';就可以查看到字符集都是utf8了
sql支持group by語句
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
設置時區(qū)為東八區(qū)
default-time_zone = '+8:00'
最后重啟數據庫,使配置生效溅话。
systemctl restart mysqld
6.設置開機啟動
systemctl enable mysqld
systemctl daemon-reload
安裝記錄就到這里晓锻,更多的配置在遇到后繼續(xù)更新。
iptables配置允許mysql遠程訪問
sudo vi /etc/iptables.up.rules
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
service iptables save
service iptables restart
開通3306 端口的行必須在icmp-host-prohibited前
MySQL 連接錯誤Can't connect to MySQL server on (61)
鏈接數據庫時忽然遇到一個問題飞几。Mac Navicat鏈接時報錯Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (61)砚哆。
PS. win版Navicat 報錯Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (10038)
其中xx.xx.xx.xx是ip地址。
1屑墨、查看該用戶是否有遠程登錄的權限
mysql> SELECT * FROM mysql.user;
+-----------+-----------+
| User | Host |
+-----------+-----------+
| M | % |
| mysql.sys | localhost |
| root | localhost |
| tommy | % |
| showhilllee | % |
+-----------+-----------+
5 rows in set (0.00 sec)
- 很顯然躁锁,M是允許從其它服務器登陸的。
2绪钥、查看 MySQL Server 是不是監(jiān)聽了 3306 端口
執(zhí)行命令netstat -tulpen
netstat -tulpen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 16801 1507/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 17222 1970/master
tcp6 0 0 :::3306 :::* LISTEN 27 46396 22054/mysqld
tcp6 0 0 :::22 :::* LISTEN 0 16803 1507/sshd
tcp6 0 0 ::1:25 :::* LISTEN 0 17223 1970/master
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 49600 22999/dhclient
udp 0 0 0.0.0.0:43504 0.0.0.0:* 0 48850 22999/dhclient
udp6 0 0 :::47875 :::* 0 48851 22999/dhclient
我在這里也沒有問題灿里。
這里如果沒有監(jiān)聽3306端口或者只監(jiān)聽了localhost
(0.0.0.0表示監(jiān)聽所有),則在my.cnf
添加下面這一行
bind-address = 0.0.0.0
3程腹、如果服務器是 CentOS7匣吊,將 MySQL 服務加入防火墻
執(zhí)行命令
sudo firewall-cmd --zone=public --permanent --add-service=mysql
返回success。然后繼續(xù)執(zhí)行
sudo systemctl restart firewalld
重啟防火墻之后就能正常訪問了寸潦。