通過shell腳本對mysql的增刪改查及my.cnf的配置
shell操作mysql
1.獲取mysql默認密碼
新安裝的mysql,密碼是默認密碼
#!/bin/bash # STRING:獲取mysql默認密碼的一段字符串 # 例如:A temporary password is generated for root@localhost: xxxxxx # PASSWORD:將獲取到的STRING進行截取,獲取localhost:右邊的默認密碼 # shellcheck disable=SC2006 STRING=`grep "temporary password" /var/log/mysqld.log` PASSWORD=${STRING#*localhost: }
若已經修改瞭密碼的
#!/bin/bash # shellcheck disable=SC2006 PASSWORD="你的密碼"
2.修改my.cnf文件
原因:在mysq5.6還是5.7以上,使用如下的shell腳本進行連接,會提示在命令行輸入密碼不安全。
mysql -u root -pPASSWORD -e "xxxxxx"
解決方法:使用sed命令在my.cnf文件中添加如下字段
[client] user=root password=xxxxxx
shell腳本:
# 我的my.cnf文件在/etc/my.cnf下,不相同的可以自己去找找 # sed -i '第幾行 添加的內容' 指定的文件 sed -i '1i [client]' /etc/my.cnf sed -i '2i user=root' /etc/my.cnf sed -i '3i password=xxxxxx' /etc/my.cnf
3.shell創建mysql數據庫
# SQL語句 DATABASE_SQL="CREATE DATABASE IF NOT EXISTS test" # mysql -u 用戶名 -e "sql語句" # 因為在my.cnf中配置瞭密碼,所以不用寫密碼瞭 mysql -u root -e "${DATABASE_SQL}"
4.shell創建mysql表
# sql語句 TEST_SQL="CREATE TABLE IF NOT EXISTS test ( id varchar(20) NOT NULL, text varchar(20) NOT NULL) ENGINE=InnoDB" # mysql -u 用戶名 -D "數據庫名" -e "sql語句" mysql -u root -D "test" -e "${TEST_SQL}"
5.shell添加數據
# sql語句 INSERT_SQL="insert into test values ('123', 'test')" mysql -u root -D "test" -e "${INSERT_SQL}"
6.shell刪除數據
DELETE_SQL="delete from test where id='123'" mysql -u root -D "test" -e "${DELETE_SQL}"
7.shell修改數據
UPDATE_SQL="update test set text='你好' where id='123'" mysql -u root -D "test" -e "${UPDATE_SQL}"
8.shell查找數據
SELECT_SQL="select id, text from test where id='123'" mysql -u root -D "test" -e "${SELECT_SQL}"
9.shell修改數據庫密碼
# mysql5.7之前 SQL="update mysql set password=password("新密碼") where user='root'" # mysql5.7及以後 SQL="update mysql set authentication_string=password("新密碼") where user='root'" # flush privileges:刷新 mysql -u root -D "mysql" -e "${SQL};flush privileges"
到此這篇關於通過shell腳本對mysql的增刪改查及my.cnf的配置的文章就介紹到這瞭,更多相關shell腳本mysql增刪改查內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- MySQL數據庫基本SQL語句教程之高級操作
- 全面分析MySQL ERROR 1045出現的原因及解決
- MySQL8.0.23版本的root密碼重置最優解法
- 如何快速修改MySQL用戶的host屬性
- MySQL8.0+版本1045錯誤的問題及解決辦法