mysql安裝完成以後的任務
mysql在Unix-like系統上安裝完成後,必須初始化授權表,啓動服務,確保它令人滿意地工作,並隨機器一起啓動和停止,並在授權表中分配賬號和密碼.
在Unix-like系統上,授權表由mysql_install_db程序設置,在許多安裝方式中如果數據庫不存在這個程序會自動執行.在linux 上以RPM方式安裝mysql , mysql_install_db程序會由服務器RPM自動執行
在其它的安裝方式中,包括generic binary and source installs 將手動運行mysql_install_db
# cd/usr/local/mysql/ #scripts/mysql_install_db --help 獲得mysql_install_db程序的幫助 #scripts/mysql_install_db--user=mysql --datadir=/mydata/data --random-passwords
使用--random-passwords選擇後, 會爲root用戶分配一個隨機密碼並保存在/home/.mysql_secret文件中,使用這個root賬號隨機生成的密碼登錄數據庫後如果不重設密碼,就不能對數據庫進行任何操作, 這個選項還設置帳號的密碼過期flag, 刪除mysql匿名用戶.
使用mysqladmin管理mysql
mysql mysqladmin是mysql server 的客戶端工具
# mysqladmin -u root password 'redhat' -p 修改root的密碼 # mysqladmin version 查看mysql 的版本 檢測mysql是否啓動,是否能響應連接 # mysqladmin -u root shutdown 是否可以關閉mysqlserver # mysqld_safe --user=mysql & 校驗能不能再次重啓數據庫 # mysqlshow mysql 檢測是否可以從服務檢索信息 # mysql -e "SELECTHost,Db,User FROM db" mysql
mysql測試:
mysql源碼包中包含了基準測試套件可以在mysql-5.6.17/tests目錄中找到,以如下方式使用
# cd software/mysql-5.6.17 # mysql -vvf -uroot -p test <./tests/auto_increment.tst
指派mysql用戶的密碼
查看受權表:
mysql> SELECT User, Host,Password FROM mysql.user;
修改root賬戶的密碼,可以使用的方法:
使用set password語句
使用updata 語句
使用mysqladmin 客戶端工具
set password語句的使用:
Syntax:
SET PASSWORD [FOR user] = { PASSWORD('cleartext password')
| OLD_PASSWORD('cleartext password') | 'encrypted password' }
如:
# mysql -u root -p mysql> SET PASSWORD FOR 'root'@'localhost' =PASSWORD('newpwd'); mysql> SET PASSWORD FOR 'root'@'127.0.0.1' =PASSWORD('newpwd'); mysql> SET PASSWORD FOR 'root'@'::1' =PASSWORD('newpwd'); mysql> SET PASSWORD FOR 'root'@'host_name' =PASSWORD('newpwd');
也可以只使用update語句爲所有root用戶指派密碼:
在user表中直接使用UPDATE更新密碼後,必須讓服務器用FLUSH PRIVILEGES重新讀授權表。否則,重新啓動服務器前,不會使用更改。
Syntax:
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [,col_name2={expr2|DEFAULT}] ...[WHERE where_condition]
[ORDER BY ...] [LIMIT row_count]
如 :
shell> mysql -u root mysql> UPDATE mysql.user SET Password =PASSWORD('newpwd') WHERE User = 'root'; mysql> FLUSH PRIVILEGES;
FLUSH語句會導致mysql重讀授權表,使對root密碼的修改生效
使用mysqladmin修改mysql的用戶名和密碼:
# mysqladmin -u root -h host_name password "newpwd
# mysqladmin -u root password "newpwd" # mysqladmin -u root -p password "newpwd"
如果密碼不包含特殊字符 , "newpwd"上的引號可以省略
使用set password語句修改匿名用戶的密碼:
shell> mysql -u root -p Enter password: (enter root password here) mysql> SET PASSWORD FOR ''@'localhost' =PASSWORD('newpwd'); mysql> SET PASSWORD FOR ''@'host_name' =PASSWORD('newpwd');
使用update 語句修改匿名用戶的密碼:
# mysql -u root -p Enter password: (enter root password here) mysql> UPDATE mysql.user SET Password =PASSWORD('newpwd') WHERE User = ''; mysql> FLUSH PRIVILEGES;
刪除匿名用名:
# mysql -u root -pEnter password: (enter root password here) mysql> DROP USER ''@'localhost'; mysql> DROP USER ''@'host_name';