CentOS 7使用yum安裝MySQL


CentOS7默認數據庫是mariadb,配置等用着不習慣,因此決定改成mysql,但是CentOS7的yum源中默認好像是沒有mysql的。爲了解決這個問題,我們要先下載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

安裝這個包後,會獲得兩個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

根據提示安裝就可以了,不過安裝完成後沒有密碼,需要重置密碼

4.重置mysql密碼

$ mysql -u root

5.錯誤分析

登錄時有可能報這樣的錯:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘,
原因是/var/lib/mysql的訪問權限問題。
下面的命令把/var/lib/mysql的擁有者改爲當前用戶:

$ sudo chown -R root:root /var/lib/mysql

6.重啓mysql服務

$ service mysqld restart

7.接下來登錄重置密碼

$ mysql -u root  //直接回車進入mysql控制檯
mysql > use mysql;
mysql > update user set password=password('root') where user='root';
mysql > exit;

擴展

遠程訪問 開放防火牆的端口號mysql

電梯直達

增加權限

mysql庫中的user表新增一條記錄host爲“%”,user爲“root”

參見

Linux MySQL 幾個重要 的目錄
數據庫目錄 /var/lib/mysql/
配置文件 /usr/share /mysql(mysql.server命令及配置文件)
相關命令 /usr/bin(mysqladmin mysqldump等命令)
啓動腳本 /etc/rc.d/init.d/(啓動腳本文件mysql的目錄)

刪除mysql數據庫

  • 如果使用的是yum安裝的mysql,需要刪除的話,就是用如下命令:
yum -y remove mysql*
  • 然後將/var/lib/mysql文件夾下的所有文件都刪除乾淨
rm -rf /var/lib/mysql

然後再重新執行上面的安裝步驟

授權用戶從遠程登錄

注意:下面兩個步驟都需要執行.步驟一,只是修改了用戶的密碼.但是並沒有對用戶進行授權;步驟二的作用就是授權,讓用戶可以指定權限(連接誒數據庫,查詢數據庫…)

1. 改表法。

可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 數據庫裏的 “user” 表裏的 “host” 項,從"localhost"改稱"%“可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 “mysql” 數據庫裏的 “user” 表裏的 “host” 項,從"localhost"改稱”%"

mysql -u root -p root;
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2. 授權法。

例如,你想root使用root從任何主機連接到mysql服務器的話。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

如果你想允許用戶root從ip爲192.168.1.3的主機連接到mysql服務器,並使用root作爲密碼

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'root' WITH GRANT OPTION;

注意

1.下面這一句一定要執行,否則還是無法登陸

mysql> flush privileges;

2.如果用戶無法從本地登陸,這個時候就執行如下:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost.localdomain' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> flush privileges;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章