在CentOS中默認安裝有MariaDB,這個是MySQL的分支胶台,但為了需要歼疮,還是要在系統(tǒng)中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB诈唬。
1.下載并安裝MySQL官方的 Yum Repository
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
使用上面的命令就直接下載了安裝用的Yum Repository韩脏,大概25KB的樣子,然后就可以直接yum安裝了铸磅。
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
之后就開始安裝MySQL服務(wù)器赡矢。
[root@localhost ~]# yum -y install mysql-community-server
已安裝:
mysql-community-libs.x86_64 0:5.7.28-1.el7 mysql-community-libs-compat.x86_64 0:5.7.28-1.el7 mysql-community-server.x86_64 0:5.7.28-1.el7
作為依賴被安裝:
mysql-community-client.x86_64 0:5.7.28-1.el7 mysql-community-common.x86_64 0:5.7.28-1.el7 perl.x86_64 4:5.16.3-294.el7_6
perl-Carp.noarch 0:1.26-244.el7 perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7 perl-Filter.x86_64 0:1.49-3.el7
perl-Getopt-Long.noarch 0:2.40-3.el7 perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-PathTools.x86_64 0:3.40-5.el7
perl-Pod-Escapes.noarch 1:1.04-294.el7_6 perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7
perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 perl-Socket.x86_64 0:2.010-4.el7
perl-Storable.x86_64 0:2.45-3.el7 perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7
perl-Time-Local.noarch 0:1.2300-2.el7 perl-constant.noarch 0:1.27-2.el7 perl-libs.x86_64 4:5.16.3-294.el7_6
perl-macros.x86_64 4:5.16.3-294.el7_6 perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7
替代:
mariadb-libs.x86_64 1:5.5.60-1.el7_5
完畢!
2.MySQL數(shù)據(jù)庫設(shè)置
首先啟動MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL運行狀態(tài)阅仔,運行狀態(tài)如圖:
[root@localhost ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 日 2019-11-10 16:17:34 CST; 37s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 22907 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 22857 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 22911 (mysqld)
CGroup: /system.slice/mysqld.service
└─22911 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
11月 10 16:17:11 localhost.localdomain systemd[1]: Starting MySQL Server...
11月 10 16:17:34 localhost.localdomain systemd[1]: Started MySQL Server.
此時MySQL已經(jīng)開始正常運行吹散,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日志文件中找出密碼:
[root@localhost ~]# grep "password" /var/log/mysqld.log
2019-11-10T08:17:16.411241Z 1 [Note] A temporary password is generated for root@localhost: gP;65)dXB9sP
如下命令進入數(shù)據(jù)庫:
[root@localhost ~]# mysql -uroot -p
輸入初始密碼八酒,此時不能做任何事情空民,因為MySQL默認必須修改密碼之后才能操作數(shù)據(jù)庫:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
這里有個問題,新密碼設(shè)置的時候如果設(shè)置的過于簡單會報錯:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
原因是因為MySQL有密碼設(shè)置的規(guī)范羞迷,具體是與validate_password_policy的值有關(guān):
Policy | Tests Performed |
---|---|
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
具體請百度界轩,這篇帖子比較全: link
MySQL完整的初始密碼規(guī)則可以通過如下命令查看:
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 4 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 1 |
+--------------------------------------+-------+
7 rows in set (0.00 sec)
密碼的長度是由validate_password_length決定的画饥,而validate_password_length的計算公式是:
validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
我的是已經(jīng)修改過的,初始情況下第一個的值是ON浊猾,validate_password_length是8抖甘。可以通過如下命令修改:
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
設(shè)置之后就是我上面查出來的那幾個值了与殃,此時密碼就可以設(shè)置的很簡單单山,例如1234之類的。到此數(shù)據(jù)庫的密碼設(shè)置就完成了幅疼。
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
但此時還有一個問題米奸,就是因為安裝了Yum Repository,以后每次yum操作都會自動更新爽篷,需要把這個卸載掉:
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
3.接下來就是配置mysql外網(wǎng)訪問了悴晰。
第一就是修改mysql數(shù)據(jù)庫里的user表里的host項:
mysql> update user set host = '%' where user='root';
第二開放3306端口:
[root@localhost etc]# iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
4.如果mysql沒有開機自啟動,執(zhí)行以下命令就可以逐工,當(dāng)前安裝的mysql版本是自動啟動铡溪;
如果默認mysql是自啟動的,這兩條命令可能和rc.local中的自啟動出現(xiàn)亂序之類的問題泪喊,執(zhí)行這兩條命令前最好重啟下棕硫,觀察mysql是否自動啟動。
vim /etc/rc.local
添加service mysqld start