天天看點

Ubuntu apt 安裝MySQL的使用者名和密碼

Ubuntu系統使用apt安裝的mysql在安裝過程中沒有給出輸入密碼的選項,而是給了一個預設的使用者名和密碼,那隻能根據預設使用者名和密碼登入mysql後修改使用者名和密碼了.

檢視預設使用者名和密碼

//打開檔案 /etc/mysql/debian.cnf檢視預設使用者名和密碼
    [client]
    host = localhost
    user = debian-sys-maint
    password = 24j7HYTEqgPv0Ozg
    socket = /var/run/mysqld/mysqld.sock
    [mysql_upgrade]
    host = localhost
    user = debian-sys-maint
    password = 24j7HYTEqgPv0Ozg
    socket = /var/run/mysqld/mysqld.sock      

根據預設的使用者名和密碼登入mysql(輸入指令後把上面的密碼粘貼進去)

$ mysql -udebian-sys-maint -p      

在這一步可能會報如下的一個錯誤

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)      

遇到這個錯誤修改mysql配置檔案将套接字指定為mysql預設配置設定的就行了,修改

/etc/my.cnf

,将

socket

的值改為

/var/run/mysqld/mysqld.sock

即可.

修改使用者名和密碼

登入mysql之後執行如下語句

mysql> update mysql.user set authentication_string=password('newpassword') where user='root';      

重新整理權限清單

mysql> flush privileges;
    mysql> exit;      

重新開機mysql

$ sudo service mysql restart      

使用剛設定的

root

賬号登入時可能會遇到如下問題

ERROR 1698 (28000): Access denied for user ‘root’@’localhost’      

産生這個問題的原因是Ubuntu預設安裝的mysql使用的是

UNIX auth_socket plugin

,意味着mysql使用者名必須和登入目前Ubuntu系統的使用者名一樣才能登入,檢視一下root使用者使用的是什麼類型的,先使用預設使用者名和密碼登入mysql,然後檢視

mysql> USE mysql;
    mysql> SELECT User, Host, plugin FROM mysql.user;
     
    +------------------+-----------------------+
    | User | plugin |
    +------------------+-----------------------+
    | root | auth_socket |
    | mysql.sys | mysql_native_password |
    | debian-sys-maint | mysql_native_password |
    +------------------+-----------------------+      
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
    mysql> FLUSH PRIVILEGES;
    mysql> exit;      
$ sudo service mysql restart      

繼續閱讀