mysql創(chuàng)建用戶并授權:
格式:grant 權限 on 數(shù)據(jù)庫名.表名 to 用戶@登錄主機 identified by "用戶密碼";
grant[英][grɑ:nt] 承認; 同意; 準許; 授予;
例1:允許mk用戶從localhost登錄
mysql> grant all on book.* to mk1@localhost identified by "123456";
#允許訪問book數(shù)據(jù)庫下的所有表, 只能訪問book表,而且是同一個服務器的用戶
允許mk2用戶從任意遠端主機連接mysql服務器:
mysql> grant all privileges on *.* to mk2@'%' identified by '123456' with grant option;
# with grant option 意思是mk2用戶可以把自己的權限下放給新創(chuàng)建的用戶。 另外,加不加privileges都可以。%指的任意遠程主機,不包括本地地址和localhost
Flush privileges; 刷新數(shù)據(jù)庫
測試:
[root@xuegod64 ~]# mysql -u mk2 -h 192.168.1.63 -p123456
mysql> #登錄正常
但是:
[root@xuegod63 ~]# mysql -u mk2 -h 192.168.1.63 -p123456 #不能登錄
解決方法:
mysql> grant all privileges on *.* to 'mk2'@'192.168.1.63' identified by '123456' with grant option;
[root@xuegod63 ~]# mysql -u mk2 -p123456 #不能登錄
解決方法:
mysql> grant all privileges on *.* to 'mk2'@'localhost' identified by '123456' with grant option;
總結(jié): % 指的是任意遠程主機,不包括本地地址和localhost。 另外grant是立即生效。不需要執(zhí)行:mysql> flush privileges; #手動更新命令
只有手動修改了mysql相關字段,才需要執(zhí)行mysql> flush privileges;
只授權部分權限:
mysql> grant select,insert,update,delete,create,drop on aa.* to 'custom'@'localhost' identified by '123456';
方法二: 直接修改表中權限文件:
mysql> use mysql;
mysql> insert into user (Host,User,Password) values('localhost','grace','123456');
mysql> select Host,User,Password from user where User="grace";
+-----------+-------+----------+
| Host | User | Password |
+-----------+-------+----------+
| localhost | grace | 123456 |
+-----------+-------+----------+
可以看到密碼是明文存放的,現(xiàn)在以加密方式存儲:
mysql> insert into user (Host,User,Password) values('localhost','grace1',password("123456"));
Query OK, 1 row affected, 3 warnings (0.00 sec)
mysql> select Host,User,Password from user where User="grace1";
+-----------+--------+-------------------------------------------+
| Host | User | Password |
+-----------+--------+-------------------------------------------+
| localhost | grace1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+--------+-------------------------------------------+
1 row in set (0.01 sec)
mysql> flush privileges; #刷新權限表,使配置文件生效
或重啟mysql 數(shù)據(jù)庫
[root@xuegod63 ~]# service mysqld restart
測試:
[root@xuegod63 ~]# mysql -u grace -p123456 #登錄不成功
ERROR 1045 (28000): Access denied for user 'grace'@'localhost' (using password: YES)
[root@xuegod63 ~]# mysql -u grace1 -p123456 #登錄成功
修改帳戶密碼:
方法一:使用mysqladmin修改密碼
例1:當root沒有密碼時:
[root@xuegod63 mysql]# mysqladmin -u root -h 192.168.1.63 password '123'
[root@xuegod63 mysql]# mysql -u root -h 192.168.1.63 -p123
例2: 當root已經(jīng)有密碼時:
[root@xuegod63 ~]# mysqladmin -u root password '123456' -p123
方法二:使用 set password 修改密碼:
mysql> SET PASSWORD FOR 'grace1'@'localhost' = PASSWORD('123456');
#注,你的mysql庫中已經(jīng)有記錄:grace1'@'localhost
mysql> set password = password ('1234567');
mysql> FLUSH PRIVILEGES;
重置root密碼:
[root@xuegod63 mysql]# /etc/init.d/mysqld stop
[root@xuegod63 mysql]# mysqld_safe --skip-grant-tables --skip-networking
只在mysql5.1版本有效
重新再開一個終端: 直接就可以進去了, 然后用update修改密碼
[root@xuegod63 aa]# mysql #執(zhí)行
mysql> update mysql.user set password=password('123456') where host='localhost' and user='root';
[root@xuegod63 aa]# /etc/init.d/mysqld restart
Stopping mysqld: [ OK ]
以上所述是小編給大家介紹的mysql 5.1版本修改密碼及遠程登錄mysql數(shù)據(jù)庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- 如何安裝綠色版MySQL Community Server 5.7.16并實現(xiàn)遠程登錄
- Linux平臺mysql開啟遠程登錄
- mysql 修改密碼和設置允許遠程登錄
- 如何設置才能遠程登錄Mysql數(shù)據(jù)庫
- mysql遠程登錄出錯的解決方法
- MySQL實現(xiàn)遠程登錄的方法
- 關于MYSQL 遠程登錄的授權方法 命令
- Ubuntu下MySQL安裝及配置遠程登錄教程