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




2019年4月24日 星期三

Mosquitto MQTT 使用

訂閱相關參數:

1. 如需訂閱全部 topic 可用 '#'
2. 列出 topic 請加 -v
   eg. mosquitto_sub -h abc.com -p 1883 -u name -P password -t '#' -v


發布相關參數:

1. retained (保留最後訊息在server上) : -r



在Log 內每行前面加上時間資訊


有時候我們需要長時間蒐集log,在 linux 系統上可以用以下指令來在log內的每一行前面加上時間資訊,
方便我們做檢視比較。

指令:
run.sh | while read line ; do echo -e "$(date)\t $line" ; done > log.txt

Reference:
https://serverfault.com/questions/310098/how-to-add-a-timestamp-to-bash-script-log
https://serverfault.com/questions/80749/ping-replacement-that-shows-real-time