這是本文件的舊版!
預設為Linux平台下運行
/etc/init.d/mysqld start *起動MySql伺服器
mysql -u root -p db_name
root帳號登入 mysql>SET password FOR root@localhost=PASSWORD('密碼');
假定建立使用者:ali
密碼為:ali1234 權限為:select,update,delete,drop,insert,Create 僅能訪問的資料庫:mysql
* 直接操作MySQL授權資料表 方法一
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 '密碼';
mysql> GRANT SELECT,UPDATE,DELETE,DROP,INSERT,CREATE -> ON mysql.* -> TO ali@localhost IDENTIFIED BY 'ali1234';
* 使用GRANT語句 方法三
利用Grant 給予全部權限
mysql>GRANT ALL PRIVILEGES ON *.* TO '使用者'@'主機位置或IP' IDENTIFIED BY '密碼' WITH GRANT OPTION;
作法原理:如作業系統登入安全模式一般,再去修改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密碼
[ali@andy ~]#mysql -u root mysql>USE mysql; mysql>UPDATE USER SET password=PASSWORD('密碼') WHERE USER='root'; mysql>FLUSH Privileges;
上個小節找回MySQL root密碼 需要重新啟動 MySQL服務。假若正在上線的MySQL,要使用某一個帳號登入,此時忘記了密碼而無法登入,那如何在不需要重新啟動 MySQL 前提之下,來恢復密碼。 利用再創建一個MySQL實例方式,來恢復密碼。
此實例預設的儲存引擎用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 &