1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

シェルスクリプトとmy.cnfによるmysqlの追加・削除・設定

2022-01-05 20:47:32

シェルによるmysqlの操作

1. mysqlのデフォルトパスワードの取得

デフォルトパスワードでmysqlを新規インストール

#! /bin# STRING: A string to get the default mysql password
# Example: A temporary password is generated for root@localhost: xxxxxx
# PASSWORD: intercept the obtained STRING to get the default password on the right side of localhost:localhost
# shellcheck disable=SC2006
STRING=`grep "temporary password" /var/log/mysqld.log`
PASSWORD=${STRING#*localhost: }

のパスワードが変更されている場合

#! /bin# shellcheck disable=SC2006
PASSWORD="Your password"

2. my.cnf ファイルを修正する

理由:mysq 5.6または5.7以上の場合、以下のシェルスクリプトを使用して接続すると、プロンプトが表示されるためです。 <マーク

mysql -u root -pPASSWORD -e "xxxxxxx"

解決方法 sed コマンドを使用して、my.cnf ファイルに次のフィールドを追加します。

[client]
user=root
password=xxxxxx

シェルスクリプトです。

# My my.cnf file is under /etc/my.cnf, if it's not the same, you can find it yourself
# sed -i 'what line to add' Specify the file
sed -i '1i [client]' /etc/my.cnf
sed -i '2i user=root' /etc/my.cnf
sed -i '3i password=xxxxxx' /etc/my.cnf

3.シェルでmysqlデータベースを作成する

# SQL statements
DATABASE_SQL="CREATE DATABASE IF NOT EXISTS test"
# mysql -u username -e "sql statement"
# Because the password is configured in my.cnf, you don't have to write it
mysql -u root -e "${DATABASE_SQL}"

4.シェルでmysqlのテーブルを作成する

# sql statements
TEST_SQL="CREATE TABLE IF NOT EXISTS test ( id varchar(20) NOT NULL, text varchar(20) NOT NULL) ENGINE=InnoDB"
# mysql -u username -D "database name" -e "sql statement"
mysql -u root -D "test" -e "${TEST_SQL}"

5.シェルによるデータの追加

# sql statements
INSERT_SQL="insert into test values ('123', 'test')"
mysql -u root -D "test" -e "${INSERT_SQL}"

6.シェルでデータを削除する

DELETE_SQL="delete from test where id='123'"
mysql -u root -D "test" -e "${DELETE_SQL}"

7.データを修正するシェル

UPDATE_SQL="update test set text='hello' where id='123'"
mysql -u root -D "test" -e "${UPDATE_SQL}"

8.シェルルックアップデータ

SELECT_SQL="select id, text from test where id='123'"
mysql -u root -D "test" -e "${SELECT_SQL}"

9.シェルでデータベースのパスワードを変更する

# before mysql5.7
SQL="update mysql set password=password("new password") where user='root'"
# mysql5.7 and later
SQL="update mysql set authentication_string=password("new password") where user='root'"

# flush privileges: flush
mysql -u root -D "mysql" -e "${SQL};flush privileges"

この記事はシェルスクリプトとmy.cnfによるmysqlの追加、削除、変更、設定についてですが、もっと関連するシェルスクリプトmysqlの追加、削除、変更、確認内容はBinaryDevelopの過去の記事を検索するか以下の関連記事を引き続き閲覧してくださいBinaryDevelopを今後ともよろしくお願いします