1. 程式人生 > >安裝mysql服務器及常見錯誤處理

安裝mysql服務器及常見錯誤處理

exist 方式 com command chan server dev sel 密碼過期

這是一篇在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服務器及常見錯誤處理