2024年11月21日 星期四

Ubuntu 20.04 安裝 MySQL server

sudo apt-get update

sudo apt install mysql-server

裝完後可以用以下指令查看狀態

sudo service mysql status


然後執行

sudo mysql_secure_installation

它會問幾個問題

1. would you like to setup validate password component?

2. remove anonymous users?

3. disallow root login remotely?

4. remove test database and access to it?

照直覺選一選就好


查看 mysql 版本

sudo mysqladmin -p -u root version

查看本地 ip

hostname -I

登入 mysql

sudo mysql -u root -p

預設密碼是空的,所以直接按 enter 就可以


進入 mysql 後

列出所有 database

mysql> show databases;

查詢使用者

mysql> SELECT user FROM mysql.user;

上面這個寫法是去 mysql 這個 database 的 user table 撈 user 欄位

所以也可以先

mysql> USE mysql

然後就可以寫成

mysql> Select user FROM user;

如果想查詢這個 database 有哪些 table 可以用下列指令

mysql> show full tables;

mysql> show tables;


開一個新的 database

mysql> CREATE DATABASE ooxx;

開一個新的 user,這裡示範的 user 叫 mike,而密碼就是 password

mysql> CREATE USER 'mike'@'localhost' IDENTIFIED BY 'password';

如果這個 user 會遠端登入的話,可以寫成下面這樣

mysql> CREATE USER 'mike'@'%' IDENTIFIED BY 'password';

如果出現下面這個 error 表示你的密碼不符合規範

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

可以使用下面這列來看目前的密碼規範

mysql> SHOW VARIABLES LIKE 'validate_password%';

就我自己來說,我改了下面兩列

mysql> SET GLOBAL validate_password.length = 4;

mysql> SET GLOBAL validate_password.policy=LOW;

然後可以修改使用者密碼如下列

mysql> ALTER USER 'mike'@'%' IDENTIFIED BY 'pass';


如果要把剛才開的 database ooxx的權限給 mike 的話

mysql> GRANT ALL PRIVILEGES ON ooxx.* TO 'mike'@'%';

或著當初開 database 時就是用 mike 的身分去開的話,就會自動給權限

延伸閱讀


最後別忘了

mysql> FLUSH PRIVILEGES;


下次要使用 mike 登入時就可以使用下列指令

sudo mysql -u mike -p

然後它會問你密碼你再輸入 pass (剛才 mike 的密碼已經改成 pass)

或是可以直接輸入

sudo mysql -u mike -ppass

注意最後 -ppass 沒有空格,而且會跳出警告建議你不要直接打出密碼

這篇大概就這樣