mysql 5.1版本修改密碼及遠程登錄mysql數據庫的方法。本站提示廣大學習愛好者:(mysql 5.1版本修改密碼及遠程登錄mysql數據庫的方法)文章只能為提供參考,不一定能成為您想要的結果。以下是mysql 5.1版本修改密碼及遠程登錄mysql數據庫的方法正文
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都可以。%指的任意遠程主機,不包括本地地址和localhost Flush privileges; 刷新數據庫
測試:
[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;
總結: % 指的是任意遠程主機,不包括本地地址和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'@'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 #執行 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數據庫的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!