使用者工具

網站工具


database:mysql:account

這是本文件的舊版!


預設為Linux平台下運行

/etc/init.d/mysqld start  *起動MySql伺服器

Mysql登入 存取權限流程圖

資料來源:Mandrake9.2 Linux玩家寶典一書-吳佳彥工作室

帳號登入

1
mysql -u root -p db_name

修改密碼

1
root帳號登入
mysql>SET password FOR root@localhost=PASSWORD('密碼');

新增帳號用戶帳號

假定建立使用者:ali

      密碼為:ali1234
      權限為:select,update,delete,drop,insert,Create
      僅能訪問的資料庫:mysql 

* 直接操作MySQL授權資料表 方法一

1
mysql> INSERT INTO USER(host,USER,password)VALUES('localhost','ali',PASSWORD('ali1234'));
mysql> INSERT INTO db(host,db,USER,Select_priv,update_priv,delete_priv,drop_priv,insert_priv,create_priv)
-> VALUES('localhost','mysql','ali','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;

* 使用GRANT語句 方法二

Grant 權限 on 資料庫.資料表 to 使用者@host identified by '密碼';

1
mysql> GRANT SELECT,UPDATE,DELETE,DROP,INSERT,CREATE
-> ON mysql.*
-> TO ali@localhost IDENTIFIED BY 'ali1234';

* 使用GRANT語句 方法三

利用Grant 給予全部權限

1
mysql>GRANT ALL PRIVILEGES ON *.* TO '使用者'@'主機位置或IP' IDENTIFIED BY '密碼' WITH GRANT OPTION;

刪帳號

語法:

DROP USER user [, user] ...
1
DROP USER ali@localhost;

忘記root密碼時該如何處理

作法原理:如作業系統登入安全模式一般,再去修改root的密碼

停止mysql
[ali@andy ~]#/etc/init.d/mysqld stop
編輯mysql設定檔
[ali@andy ~]#vim /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

#加入下面這一段,表明直接跳過權限
skip_grant_tables

# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1

# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

啟動mysql
[ali@andy ~]#/etc/init.d/mysqld start

不用密碼即可登入mysql command line,去修改root密碼

1
[ali@andy ~]#mysql -u root 
mysql>USE mysql;
mysql>UPDATE USER SET password=PASSWORD('密碼') WHERE USER='root';
mysql>FLUSH Privileges;

以不用重新啟動MySQL方式,來恢復MySQL密碼

上個小節找回MySQL root密碼 需要重新啟動 MySQL服務。假若正在上線的MySQL,要使用某一個帳號登入,此時忘記了密碼而無法登入,那如何在不需要重新啟動 MySQL 前提之下,來恢復密碼。 利用再創建一個MySQL實例方式,來恢復密碼。

需要恢復密碼的 實例 (3306)

假若有一個帳號 test1 ,忘記密碼。

# mysql -B -uroot -h127.0.0.1 -P3306 -p -e "select host,user,password from mysql.user where user='test1'"
host	user	password
127.0.0.1	test1	*A4B6157319038724E3560894F7F932C8886EBFCF

建立一個實例

此實例預設的儲存引擎用MyISAM。

# mkdir /Mydata
# chown  mysql:mysql /Mydata/
# mysql_install_db --user=mysql --datadir=/Mydata/
# /usr/libexec/mysqld --print-defaults
# /usr/libexec/mysqld  --basedir=/usr --datadir=/Mydata/ --user=mysql --skip-innodb --default-storage-engine=myisam --socket=/Mydata/mysql2.sock --port=3307 --log-error=/Mydata/error2.log --pid-file=/Mydata/mysql2.pid &

登入此實例

# mysql -uroot -h127.0.0.1 -P3307 -p
mysql2>

資料參考

資料參考

database/mysql/account.1430071258.txt.gz · 上一次變更: 2015/04/26 18:00 由 ali88