一、系統環境
筆者系統環境爲
二、mysql安裝
[root@Testhost ~]# yum install mysql
[root@Testhost ~]# yum install mysql-server
[root@Testhost ~]# yum install mysql-devel
安裝mysql和mysql-devel都成功,但是安裝mysql-server失敗,如下:
查資料發現是CentOS 7 版本將MySQL數據庫軟件從默認的程序列表中移除,用mariadb代替了。
有兩種解決辦法:
方法1:安裝mariadb
MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,採用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL後,有將MySQL閉源的潛在風險,因此社區採用分支的方式來避開這個風險。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕鬆成爲MySQL的代替品。
安裝mariadb,大小59 M。
[root@Testhost ~]# yum install mariadb-server mariadb
mariadb數據庫的相關命令是:
systemctl start mariadb #啓動MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重啓MariaDB
systemctl enable mariadb #設置開機啓動
所以先啓動數據庫:
[root@Testhost ~]# systemctl start mariadb
然後就可以正常使用mysql了:
[root@Testhost ~]# mysql -u root -p
安裝mariadb後顯示的也是 MariaDB [(none)]> ,可能看起來有點不習慣。下面是第二種方法。
方法2:官網下載安裝mysql-server
[root@Testhost ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
[root@Testhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
[root@Testhost ~]# yum install mysql-community-server
[root@Testhost ~]# mysql -u root -p
初次安裝mysql,root賬戶沒有密碼,輸入mysql -u root -p 一直按回車可以無密碼進入數據庫,然後再重新設置數據庫密碼。
輸入以下命令將root賬戶密碼改爲123456:
[root@Testhost ~]# set password for root@localhost = passwd('123456') ;
如果如下圖有報錯:
解決方案:退出數據庫,輸入如下命令:
[root@Testhost ~]# mysql_upgrade -u root -p 123456
然後再重新進入數據庫,更改密碼成功:
[root@Testhost ~]# set password for 'root'@'localhost' =password('123456') ;
[root@Testhost ~]# flush privileges ;
三、配置遠程連接數據庫
mysql> grant all privileges on *.* to root@localhost identified by '123456' with grant option;
mysql> grant all privileges on *.* to [email protected] identified by '123456' with grant option;
mysql> grant all privileges on *.* to root@hostname identified by '123456' with grant option;
mysql> grant all privileges on *.* to root@IP identified by '123456' with grant option;
mysql> grant all privileges on *.* to root@"%" identified by '123456' with grant option;
mysql> FLUSH PRIVILEGES; //需要輸入次命令使修改生效
[root@Testhost ~]# /bin/systemctl restart mysqld.service //退出mysql,重啓mysql服務
[root@Testhost ~]# systemctl stop firewalld //關閉防火牆
[root@Testhost ~]# systemctl disable firewalld //禁止開機啓動防火牆
拓展命令:[root@Testhost ~]# mysql -uroot -p123456$i -e "grant all privileges on *.* to root@localhost identified by '123456' with grant option;"
四、常見問題報錯
1、
解決方案:可能是數據庫服務沒啓,輸入命令 :
# /bin/systemctl start mysqld.service
2、
解決方案:可能是宿主機防火牆沒關,關閉防火牆並禁止開機啓動
[root@Testhost ~]# systemctl stop firewalld //關閉防火牆
[root@Testhost ~]# systemctl disable firewalld //禁止開機啓動防火牆
3、
解決方案:可能是數據庫沒啓動,輸入命令:
# /bin/systemctl start mysqld.service
4、改密碼的時候報語法錯誤
解決方案:退出mysql,輸入
# mysql_upgrade -u root -p 123456
# mysql -uroot -p //重新進入mysql,連按三次回車無密碼進入
# set password for 'root'@'localhost' =password('123456'); //將mysql密碼改成123456
# flush privileges; //刷新,完成!
5、執行yum install mysql-community-server時候報錯:
解決方案:將衝突的Percona-XtraDB-Cluster-client-57-5.7.24-31.33.1.el7.x86_64刪掉
# yum remove Percona-XtraDB-Cluster-client-57-5.7.24-31.33.1.el7.x86_64