mysql創建用戶并授權:
格式:grant 權限 on 數據庫名.表名 to 用戶@登錄主機 identified by "用戶密碼";
grant[英][grɑ:nt] 承認; 同意; 準許; 授予;
例1:允許mk用戶從localhost登錄
mysql> grant all on book.* to mk1@localhost identified by "123456"; #允許訪問book數據庫下的所有表, 只能訪問book表,而且是同一個服務器的用戶
允許mk2用戶從任意遠端主機連接mysql服務器:
mysql> grant all privileges on *.* to mk2@'%' identified by '123456' with grant option;# with grant option 意思是mk2用戶可以把自己的權限下放給新創建的用戶。 另外,加不加privileges都可以。%指的任意遠程主機,不包括本地地址和localhostFlush privileges; 刷新數據庫
測試:
[root@xuegod64 ~]# mysql -u mk2 -h 192.168.1.63 -p123456mysql> #登錄正常
但是:
[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;
總結: % 指的是任意遠程主機,不包括本地地址和localhost。 另外grant是立即生效。不需要執行:mysql> flush privileges; #手動更新命令
只有手動修改了mysql相關字段,才需要執行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 |+-----------+-------+----------+
可以看到密碼是明文存放的,現在以加密方式存儲:
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 數據庫
[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已經有密碼時:
[root@xuegod63 ~]# mysqladmin -u root password '123456' -p123
方法二:使用 set password 修改密碼:
mysql> SET PASSWORD FOR 'grace1'@'localhost' = PASSWORD('123456');#注,你的mysql庫中已經有記錄:grace1'@'localhostmysql> 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 #執行mysql> update mysql.user set password=password('123456') where host='localhost' and user='root';[root@xuegod63 aa]# /etc/init.d/mysqld restartStopping mysqld: [ OK ]
以上所述是小編給大家介紹的mysql 5.1版本修改密碼及遠程登錄mysql數據庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
|
新聞熱點
疑難解答