CentOS7默認(rèn)數(shù)據(jù)庫(kù)是mariadb,配置等用著不習(xí)慣,因此決定改成mysql,但是CentOS7的yum源中默認(rèn)好像是沒(méi)有mysql的。為了解決這個(gè)問(wèn)題,我們要先下載mysql的repo源。
1.下載mysql的repo源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2.安裝mysql-community-release-el7-5.noarch.rpm包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
安裝這個(gè)包后,會(huì)獲得兩個(gè)mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3.安裝mysql
$ sudo yum install mysql-server
根據(jù)提示安裝就可以了,不過(guò)安裝完成后沒(méi)有密碼,需要重置密碼
4.重置mysql密碼
$ mysql -u root
登錄時(shí)有可能報(bào)這樣的錯(cuò):ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的訪問(wèn)權(quán)限問(wèn)題。下面的命令把/var/lib/mysql的擁有者改為當(dāng)前用戶:
$ sudo chown -R root:root /var/lib/mysql
重啟mysql服務(wù)
$ service mysqld restart
設(shè)置登錄密碼:
$vi /etc/my.cnf
最后一行加入:skip-grant-tables
重啟mysql
$service mysqld restart
直接回車進(jìn)入mysql控制臺(tái)
$ mysql -u root??
切換數(shù)據(jù)庫(kù)
mysql > use mysql;
更新root密碼
mysql > update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';
重啟數(shù)據(jù)庫(kù)
$service mysqld restart
登錄數(shù)據(jù)
$ mysql -u root -p123456
在切換數(shù)據(jù)庫(kù)的時(shí)候需要再改一下密碼
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
更新一下密碼
mysql> SET PASSWORD = PASSWORD('123456');
可以切換數(shù)據(jù)庫(kù)了
mysql> use mysql;
插入新用戶
mysql>create user 'test'@'%' identified by '456789';
注:密碼的復(fù)雜度與validate_password_policy的值有關(guān),如果密碼夠復(fù)雜請(qǐng)忽略本段。
validate_password_policy有以下取值:
PolicyTests Performed
0orLOWLength
1orMEDIUMLength; numeric, lowercase/uppercase, and special characters
2orSTRONGLength; numeric, lowercase/uppercase, and special characters; dictionary file
默認(rèn)是1,即MEDIUM,所以剛開(kāi)始設(shè)置的密碼必須符合長(zhǎng)度,且必須含有數(shù)字,小寫(xiě)或大寫(xiě)字母,特殊字符。
有時(shí)候,只是為了自己測(cè)試,不想密碼設(shè)置得那么復(fù)雜,譬如說(shuō),我只想設(shè)置root的密碼為123456。
必須修改兩個(gè)全局參數(shù):
首先,修改validate_password_policy參數(shù)的值
mysql>setglobal validate_password_policy=0;
Query OK,0rows affected (0.00sec)
這樣,判斷密碼的標(biāo)準(zhǔn)就基于密碼的長(zhǎng)度了。這個(gè)由validate_password_length參數(shù)來(lái)決定。
設(shè)置用戶權(quán)限
mysql >GRANT ALL ON *.* TO 'test'@'%';
如果是阿里云服務(wù)器需要在安全組打開(kāi)3306端口,然后就可以連接了
mysql > exit;
打完,收工