文章目錄
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;