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;