2022年12月7日 星期三

mysql 建立使用者

 

1. 使用 mysql root 登入

    # mysql -u root -p

    Enter password:

2. 建立使用者

  •     只能在本地登入的使用者

    mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';

  •     只能在從網域 192.168.2.x 登入的使用者

    mysql> CREATE USER 'newuser'@'192.168.2.%' IDENTIFIED BY 'user_password';

  •     本地及網路全部都可登入使用的使用者

    mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';

3. 提供新帳號讀寫權限 : 可指定(SELECT/INSERT/UPDATE/DELETE) 及DB

  •     允許所有權限操作 newdatabase

    mysql> GRANT ALL PRIVILEGES ON newdatabase.* TO 'newuser'@'localhost';

  •     只允許select, insert 到所有database 針對只能從 192.168.2.x 登入 newuser

    mysql>GRANT SELECT,INSERT, ON *.* TO 'newuser'@'192.168.2.%'

  •     允許所有權限操作所有database

    mysql>GRANT ALL PRIVILEGES, ON *.* TO 'newuser'


Reference: https://note.charlestw.com/remote-connection-to-mysql/


mysql 重新設定root密碼

  忘記或是不知道 MySQL root 密碼,只要是系統管理員就可以用以下方式重新設定 MySQL root 密碼。


重設密碼步驟:

1.關閉 MySQL

sudo service mysql stop

2.啟用 mysqld_save,如果出現 UNIX socket file don't exists 相關錯誤了話,需要手動建立 mysqld的資料夾目錄:

sudo mkdir -p /var/run/mysqld

sudo chown mysql:mysql /var/run/mysqld

sudo mysqld_safe --skip-grant-tables &

3.進入 MySQL

mysql -u root

>use mysql;

4.更新 root 密碼

MySQL version < 5.7

update user set password=PASSWORD("newpassword") where User='root';


MySQL version >= 5.7

update user set authentication_string=password('mynewpassword') where user='root';


5.刷新 MySQL 系統相關權限表

mysql> flush privileges;

mysql> exit;

6.重啟 MySQL

mysqladmin -u root -p shutdown

sudo mysql start

7. reboot 機器 (optional)

sudo reboot


Reference: 

https://zwh.zone/mysql-reset-password/

https://ithelp.ithome.com.tw/articles/10127801

https://www.a2hosting.com/kb/developer-corner/mysql/reset-mysql-root-password