シェルスクリプトと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を今後ともよろしくお願いします
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
シェルにおける括弧、中括弧、中括弧の違いについて
-
シェルスクリプトによる複数インスタンスでのnginxのデプロイメントの詳細チュートリアル
-
シェルは現在実行中のスクリプトの絶対パスを取得する
-
シェルユーティリティスクリプトを仕事で使う
-
シェルとsedとawkの正規表現に関するFAQ
-
シェルの4つの実行モード(スタートアップモード)の実装
-
Rsyncはすべてのバックアップツールを殺す、あなたは手動で特定のディレクトリをブロックすることができますか?
-
シェルevalの環境変数を変数で取得する方法
-
Linuxでシェルスクリプトの先頭に固定書式を設定する方法
-
シェルスクリプトの実践 - whileループ文