安裝mysql服務器及常見錯誤處理
這是一篇在centos 6 Linux系統上安裝Mysql server的記錄。
https://dev.mysql.com/downloads 下載
安裝mysql服務
rpm -ivh MySQL-server-5.6.42-1.el6.i686.rpm
安裝mysql命令行客戶端
rpm -ivh MySQL-client-5.5.62-1.el6.i686.rpm
啟動
service mysql start
查看端口
netstat -anp |grep 3306
修改root密碼/忘記root密碼
service mysql stop
# mysqld_safe --skip-grant-tables &
# mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("123") WHERE user=‘root‘;
mysql> flush privileges;
mysql> exit;
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supp
解決辦法:
service mysql stop
先通過跳過授權表的方式啟動數據庫:
mysqld_safe --skip-grant-tables --skip-networking &
這樣就可以免密碼登錄了。
mysql
然後修改該用戶密碼過期策略為N:
use mysql
update user set password_expired="N" where user="root";
flush privileges;
exit
重啟數據庫即可。
service mysql restart
1.新建用戶。
//登錄MYSQL
@>mysql -u root -p
@>密碼
//創建用戶
mysql> GRANT USAGE ON *.* TO ‘user01‘@‘localhost‘ IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;
mysql>flush privileges;
這樣就創建了一個名為: user01 密碼為: 12345656 的用戶。
2.為用戶授權。
//登錄MYSQL(有ROOT權限)。我裏我以ROOT身份登錄.
@>mysql -u root -p
@>密碼
//首先為用戶創建一個數據庫(Data01)
mysql>create database Data01;
//授權user01用戶擁有user01數據庫的所有權限。
>grant all privileges on Data01.* to user01@localhost identified by ‘123456‘;
//刷新系統權限表
mysql>flush privileges;
mysql>其它操作
---------------------------------------------------------------------------
/*
如果想指定部分權限給一用戶,可以這樣來寫:
mysql>grant select,update on user01DB.* to user01@localhost identified by ‘123456‘;
//刷新系統權限表。
mysql>flush privileges;
*/
3.刪除用戶。
@>mysql -u root -p
@>密碼
mysql>DELETE FROM user WHERE User="user01" and Host="localhost";
mysql>flush privileges;
//刪除用戶的數據庫
mysql>drop database user01DB;
4.修改指定用戶密碼。
@>mysql -u root -p
@>密碼
mysql>update mysql.user set password=password(‘新密碼‘) where User="user01" and Host="localhost";
mysql>flush privileges;
===========================================================================
然後登錄一下。
mysql>exit;
@>mysql -u user01 -p
@>輸入密碼
mysql>登錄成功
//顯示所有數據庫
mysql> show databases;
//切換數據庫
mysql> use Data01
//新建表測試
CREATE TABLE IF NOT EXISTS `Player` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`playerID` int(11) NOT NULL COMMENT ‘玩家ID‘
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//查看表結構
mysql> desc Player;
+------------+----------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+----------------+
| ID | int(11) | NO | PRI | NULL | auto_increment |
| playerID | int(11) | NO | | NULL | |
+------------+----------+------+-----+---------+----------------+
//插入數據測試
mysql> INSERT INTO `Player` (`ID`, `playerID`) VALUES (NULL, ‘100001‘);
一些錯誤處理
報錯:1130-host ... is not allowed to connect to this MySql server 開放mysql遠程連接 不使用localhost
1。 改表法。
可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 數據庫裏的 "user" 表裏的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = ‘%‘ where user = ‘root‘;
mysql>select host, user from user;
2、mysql>FLUSH PRIVILEGES //修改生效
3、mysql>EXIT //退出MySQL服務器
這樣就可以在其它任何的主機上以root身份登錄啦!
解決 SELECT command denied to user ‘root‘@‘192.168.1.47‘ for table ‘user‘的報錯。mysql用戶權限修改,表權限修改。
select * from mysql.user;
修改權限的SQL語句是:(語句你自己根據自己ip修改)
UPDATE mysql.user SET select_priv=‘Y‘ , insert_priv=‘Y‘, update_priv=‘Y‘, DELETE_priv=‘Y‘ WHERE HOST=‘%‘;
FLUSH PRIVILEGES;
安裝mysql服務器及常見錯誤處理