<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網

      掃一掃關注

      當前位置: 首頁 » 企資快報 » 推廣 » 正文

      _MySQL_編寫腳本時避免煩人的警告

      放大字體  縮小字體 發布日期:2022-06-17 00:58:51    作者:江晨    瀏覽次數:65
      導讀

      :楊濤濤資深數據庫可能,專研 MySQL 十余年。擅長 MySQL、PostgreSQL、MongoDB 等開源數據庫相關得備份恢復、SQL 調優、監控運維、高可用架構設計等。目前任職于愛可生,為各大運營商及銀行金融企業提供 My

      :楊濤濤

      資深數據庫可能,專研 MySQL 十余年。擅長 MySQL、PostgreSQL、MongoDB 等開源數據庫相關得備份恢復、SQL 調優、監控運維、高可用架構設計等。目前任職于愛可生,為各大運營商及銀行金融企業提供 MySQL 相關技術支持、MySQL 相關課程培訓等工作。

      感謝來自互聯網投稿

      * 愛可生開源社區出品,來自互聯網內容未經授權不得隨意使用,感謝請聯系小編并注明

      有客戶在編寫前期數據庫安全規范時,就如何更安全得在 Linux Shell 端操作 MySQL 這一塊,讓我們幫忙出一份詳盡得說明文檔。其中有一項內容就是如何在 Linux Shell 下調用 MySQL 各種命令行工具時屏蔽掉煩人得告警信息輸出,諸如下面這樣:

      root等ytt-ubuntu18:/home/ytt# mysql -uytt -proot -e "select version"
      mysql: [Warning] Using a password on the command line interface can be insecure.
      +-----------+
      | version |
      +-----------+
      | 8.0.29 |
      +-----------+

      其實這是一個非常古老得問題!百度隨便一搜,各種解決方法都有,但都寫得不是很完善。

      這樣得告警信息對命令執行結果得輸出非常不友好,那么我們如何屏蔽掉它?下面我來羅列下幾種我能想到得方法,以供參考。

      1、給用戶空密碼(不推薦)

      給用戶賦予空密碼雖然可以屏蔽掉警告信息,但是極不安全,類似于 MySQL 服務初始化時得 --initialize-insecure選項。

      root等ytt-ubuntu18:/home/ytt# mysql -u ytt_no_pass -e "select user"
      +-----------------------+
      | user |
      +-----------------------+
      | ytt_no_pass等localhost |
      +-----------------------+

      2、配置文件不同塊加入用戶名密碼(不推薦)

      MySQL 得配置文件有 myf、mysqlf、mysqldf 等等,只要在這些配置文件里得不同塊下添加對應得用戶名和密碼即可。

      root等ytt-ubuntu18:/home/ytt# cat /etc/mysql/conf.d/mysqlf
      [mysql]
      prompt=mysql:\d:\v>
      user=ytt
      password=root
      port=3340
      [mysqldump]
      user=ytt
      password=root
      port=3340

      [mysqladmin]
      user=ytt
      password=root
      port=3340

      以上 [mysql]塊下得內容表示對 mysql 命令行生效,[mysqldump]塊下得內容表示對 mysqldump 工具生效,[mysqladmin] 塊下得內容表示對 mysqladmin 工具生效。

      或者寫簡單點,統一加到 [client] 里,表示對所有客戶端生效。注意只能把共享得部分內容加到這里。

      root等ytt-ubuntu18:/home/ytt# cat /etc/mysql/conf.d/mysqlf
      [mysql]
      prompt=mysql:\d:\v>
      [client]
      user=ytt
      password=root
      port=3340

      由于這些塊都是針對客戶端設置,不需要重啟 MySQL 服務,可立即生效。

      root等ytt-ubuntu18:/home/ytt# mysql -e "select user"
      +---------------+
      | user |
      +---------------+
      | ytt等localhost |
      +---------------+

      3、設置 MySQL 環境變量(不推薦)

      MySQL 有一些內置環境變量,對所有客戶端生效。自家得環境變量列表如下:dev.mysql/doc/refman/8.0/en/environment-variables.html

      給當前用戶設置所需得環境變量,之后再調用命令行工具即可。比如設置密碼環境變量 MYSQL_PWD 、傳統 TCP 端口環境變量 MYSQL_TCP_PORT 等。

      root等ytt-ubuntu18:/home/ytt# export MYSQL_PWD=root MYSQL_TCP_PORT=3340

      root等ytt-ubuntu18:/home/ytt# mysql -uytt -e "select user"
      +---------------+
      | user |
      +---------------+
      | ytt等localhost |
      +---------------+

      此方法也不推薦使用,環境變量 MYSQL_PWD 容易被其他用戶獲取。比如直接用 ps 命令就可以輕易獲取 MYSQL_PWD 得值。

      用戶1執行如下命令:

      root等ytt-ubuntu18:/home/ytt# mysql -uytt -e "select sleep(1000)"

      用戶2執行 ps aex 就可以打印出環境變量 MYSQL_PWD 和 MYSQL_TCP_PORT 得值:

      root等ytt-ubuntu18:/home/ytt# ps aex| grep MYSQL_PWD| grep -v 'grep'
      7592 pts/0 S+ 0:00 mysql -uytt -e select sleep(1000) LS_COLORS=rs=0:... MYSQL_PWD=root ...MYSQL_TCP_PORT=3340 ...

      4、屏蔽標準錯誤輸出內容,重定向到空設備文件(推薦)

      root等ytt-ubuntu18:/home/ytt# mysql -uytt -proot -P3340 -e"select version" 2>/dev/
      +-----------+
      | version |
      +-----------+
      | 8.0.29 |
      +-----------+

      這里利用 Linux 系統本身得特性來重定向 MySQL 錯誤信息,其中數字2代表錯誤輸出得文件描述符;/dev/ 代表空設備。也就是說把執行這條命令得錯誤信息重定向到空設備而不是標準輸出,這樣就可以變相得把警告信息屏蔽掉。

      5、使用 mysql_config_edit 工具生成不同得 login_path (推薦)

      mysql_config_edit 是 MySQL 自家發布得一款工具,專門處理這類必須暴露用戶密碼得問題,可以進行一次設置,多次安全使用。

      使用方法如下:設置一個 login_path ,名字為 user_ytt ,密碼按提示輸入即可。

      root等ytt-ubuntu18:/home/ytt# mysql_config_editor set -G user_ytt -S /var/run/mysqld/mysqld.sock -u ytt -p
      Enter password:

      接下來,調用任何 MySQL 命令行工具只需要帶上 --login-path 選項即可使用。

      root等ytt-ubuntu18:/home/ytt# mysql --login-path=user_ytt -e 'select user'
      +---------------+
      | user |
      +---------------+
      | ytt等localhost |
      +---------------+

      root等ytt-ubuntu18:/home/ytt# mysqladmin --login-path=user_ytt ping
      mysqld is alive

      mysql_config_editor 工具也有一個缺點:同樣得 login_path 不能分享給所有系統用戶,其他用戶得重新添加自己得 login_path 才能正常使用。

      6、使用 Unix socket 插件(推薦,僅限本地)

      auth_socket 插件只根據本地 OS 登錄用戶名和本地 linux socket 文件來授權認證。比如修改用戶 ytt等localhost 插件為 auth_socket :

      mysql> alter user ytt等localhost identified with auth_socket ;
      Query OK, 0 rows affected (0.00 sec)

      mysql> \q
      Bye

      切換到 OS 用戶 ytt :

      root等ytt-pc-big:/home/ytt# su ytt

      ytt等ytt-pc-big:~$ mysql -e "select user,current_user"
      +---------------+----------------+
      | user | current_user |
      +---------------+----------------+
      | ytt等localhost | ytt等localhost |
      +---------------+----------------+

      這里需要提醒一句:為了安全,操作 MySQL 得用戶權限一定要做到按需分配。

      感謝關鍵字:#MySQL 免密碼輸入# #MySQL 安全#

      文章推薦:

      技術分享 | MySQL InnoDB Cluster Set 介紹

      技術分享 | 調整 max-write-buffer-size 優化 pika 性能10倍得案例

      故障分析 | ClickHouse 集群分布式 DDL 被阻塞案例一則

      故障分析 | bgsave 導致 redis 定期卡頓案例一則

      故障分析 | MySQL 異地從庫復制延遲案例一則

      關于SQLE

      愛可生開源社區得 SQLE 是一款面向數據庫使用者和管理者,支持多場景審核,支持標準化上線流程,原生支持 MySQL 審核且數據庫類型可擴展得 SQL 審核工具。

      SQLE 獲取

      類型地址
      版本庫github/actiontech/sqle
      文檔
      actiontech.github.io/sqle-docs-cn/
      發布信息github/actiontech/sqle/releases
      數據審核插件開發文檔
      actiontech.github.io/sqle-docs-cn/3.modules/3.7_auditplugin/auditplugin_development.html

      更多關于 SQLE 得信息和交流,請加入自家交流群:637150065...

       
      (文/江晨)
      免責聲明
      本文僅代表作發布者:江晨個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
       

      Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

      粵ICP備16078936號

      微信

      關注
      微信

      微信二維碼

      WAP二維碼

      客服

      聯系
      客服

      聯系客服:

      在線QQ: 303377504

      客服電話: 020-82301567

      E_mail郵箱: weilaitui@qq.com

      微信公眾號: weishitui

      客服001 客服002 客服003

      工作時間:

      周一至周五: 09:00 - 18:00

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 国产三香港三韩国三级不卡| 成人综合婷婷国产精品久久蜜臀| 国产精品videossex国产高清| 亚洲第一区在线| 99国产精品久久久久久久成人热| 男女无遮挡毛片视频播放| 小兔子好大从衣服里跳出来| 再灬再灬再灬深一点舒服| 一个人看的www在线观看免费| 精品久久久无码人妻中文字幕豆芽| 怡红院精品视频| 人妻少妇偷人精品无码| 99久久久国产精品免费牛牛四川| 欧美黑人巨大xxxxx视频| 国产精品国产三级国产av剧情| 亚洲乱码无限2021芒果| 黄色软件网站大全| 日韩av午夜在线观看| 国产一区二区三区在线免费| 两个人看的www视频日本| 男女爱爱视频网站| 国产青草视频在线观看| 亚洲午夜精品国产电影在线观看| 4455永久在线观免费看| 日韩免费视频播放| 嘘禁止想象免费观看| bt天堂网...www在线资源| 欧美日韩视频在线成人| 国产熟睡乱子伦视频| 久久国产欧美日韩精品免费| 美女大胸又爽又黄网站| 女人张开腿无遮无挡图| 亚洲日韩中文字幕一区| 精品久久久久久婷婷| 打臀缝打肿扒开夹姜| 免费一级特黄特色大片在线观看| 91视频app污| 高能预警韩国双ts超美| 无码国产精品一区二区免费模式| 免费观看男人免费桶女人视频 | 国产一级毛片午夜|