centos mysqlのインストールとドレイン(vagrant mysqlミラーリングを含む)


「SpringCloudNginx高同時実行コアプログラミング」環境セットアップ-シリーズ

成分 リンクアドレス
【必須】仮想マシンLinux開発環境の準備 https://www.cnblogs.com/crazymakercircle/p/14194688.html
Linuxopenrestyのインストール Linuxopenrestyのインストール
[必須] Linux Redisのインストール(ビデオ付き) Linux Redisのインストール(ビデオ付き)
[必須] Linux Zookeeperのインストール(ビデオ付き) Linux Zookeeperのインストール、ビデオ付き
Windows Redisのインストール(ビデオ付き) Windows Redisのインストール(ビデオ付き)
RabbitMQオフラインインストール(ビデオ付き) RabbitMQオフラインインストール(ビデオ付き)
ElasticSearchのインストール、ビデオ付き ElasticSearchのインストール、ビデオ付き
Nacosのインストール(ビデオ付き) Nacosのインストール(ビデオ付き)
【必須】ユーレカ ビデオでユーレカを始めよう
[必須] springcloudConfigの使用を開始するビデオ ビデオ付きのspringcloudConfigの使用を開始する
[必須] SpringCloudスキャフォールディングのパッケージ化と起動 SpringCloudスキャフォールディングのパッケージ化と起動
Linuxセルフスタート、一時停止アニメーション、セルフスタート、時限セルフスタート Linuxのセルフスタートの仮死状態

centosmysql仮想マシンイメージ

Crazy Maker Circleネットワークディスクは、すべての人のためにspringcloud.box仮想マシンイメージを準備しました。これには、java、redis、zookeeper、kafka、Eureka、springcloud config、mysqlなどの必要なコンポーネントがプリインストールされているため、準備の手間が省けます。開発環境。素晴らしいと思いませんかネットワークディスクアドレスについては、【ブログパーク一般入口をご参照ください

本当に自分でインストールしたい場合は、次のチュートリアルを使用してください。これは作成者のインストールノートでもあり、引き続き問題を記録します。

mysqlをインストールします

MariaDBはデフォルトでMySQLのブランチであるCentOSにインストールされますが、必要に応じてMySQLをシステムにインストールする必要があり、MariaDBはインストールの完了後に直接上書きできます。

1MySQLの公式Yumリポジトリをダウンロードしてインストールします

CentOSのyumソースにはmysqlがないため、mysqlの公式Webサイトからyumリポジトリ構成ファイルをダウンロードする必要があります。ダウンロードコマンド:

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

実行プロセスは次のとおりです。

[root@localhost work]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
--2020-12-27 02:02:22--  http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
.....
HTTP request sent, awaiting response... 200 OK
Length: 25548 (25K) [application/x-redhat-package-manager]
Saving to: ‘mysql57-community-release-el7-10.noarch.rpm’

100%[==================================================================================================>] 25,548       127KB/s   in 0.2s

2020-12-27 02:04:42 (127 KB/s) - ‘mysql57-community-release-el7-10.noarch.rpm’ saved [25548/25548]


上記のコマンドを使用して、インストール用に約25KBのYumリポジトリーを直接ダウンロードします。

次に、リポジトリをインストールします。

rpm -ivh mysql57-community-release-el7-10.noarch.rpm

実行プロセスは次のとおりです。

[root@localhost work]# rpm -ivh mysql57-community-release-el7-10.noarch.rpm
warning: mysql57-community-release-el7-10.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-10 ################################# [100%]

実行が完了すると、2つのリポジトリファイルが/etc/yum.repos.d/ディレクトリmysql-community.repomysql-community-source.repoに生成されます。

yumコマンドを使用してインストールを完了します

/etc/yum.repos.d/ディレクトリーに入り、次のスクリプトを実行する必要があります。そうすれば、yumを直接インストールできます。

[root@localhost ~]# yum install mysql-server

この手順には時間がかかる場合があり、インストールが完了すると、前のmariadbが上書きされます。


[root@localhost yum.repos.d]# yum install mysql-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 .....
Installed:
  mysql-community-libs.x86_64 0:5.7.32-1.el7 mysql-community-libs-compat.x86_64 0:5.7.32-1.el7 mysql-community-server.x86_64 0:5.7.32-1.el7

Dependency Installed:
  mysql-community-client.x86_64 0:5.7.32-1.el7                         mysql-community-common.x86_64 0:5.7.32-1.el7

Dependency Updated:
  openssl.x86_64 1:1.0.2k-21.el7_9             openssl-libs.x86_64 1:1.0.2k-21.el7_9             postfix.x86_64 2:2.10.1-9.el7

Replaced:
  mariadb-libs.x86_64 1:5.5.44-2.el7.centos

Complete!

msyqlを開始します。

MySQLを起動します

systemctl start mysqld 

ログインする:

インストール中に一時パスワードを取得します(このパスワードは、初めてログインするときに使用されます):grep '一時パスワード' /var/log/mysqld.log

[root@localhost yum.repos.d]# grep 'temporary password' /var/log/mysqld.log
2020-12-27T02:34:04.063826Z 1 [Note] A temporary password is generated for root@localhost: LXwH6NSf*kVh

一時パスワードを使用してmysqlにログインします

mysql -u root -p


次に、パスワード(取得したばかりの一時パスワード)を入力しますLXwH6NSf * kVh

ログインに成功したら、パスワードを変更します

1.まず、パスワード検証の強度レベルを設定し、validate_password_policyのグローバルパラメーターをLOWに設定する必要があります。

設定ステートメント「setglobalvalidate_password_policy = LOW;」を入力して、値を設定します。

2.現在のパスワードの長さは8です。よろしければ、変更する必要はありません。通常、6桁のパスワードに設定し、validate_password_lengthのグローバルパラメータを6に設定します。

設定ステートメント「setglobalvalidate_password_length = 6;」を入力して、値を設定します。

3.これで、6桁の長さを満たしている限り、mysqlに簡単なパスワードを設定できます。

変更ステートメント「ALTERUSER'root '@' localhost 'IDENTIFIED BY' 123456 ';」を入力すると、変更が成功したことがわかり、パスワードポリシーの変更が成功したことを示します。

実行プロセスは次のとおりです。

[root@localhost yum.repos.d]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.32

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set global validate_password_policy=LOW
    -> ;
Query OK, 0 rows affected (0.03 sec)

mysql> set global validate_password_length=6;
Query OK, 0 rows affected (0.01 sec)

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.04 sec)

注:SQLを作成するときは、ステートメントの完了後に必ず「;」を追加してください。

一般的なコマンド

1.MySQLを起動します

systemctl start mysqld

2.MySQLを閉じます

systemctl stop mysqld

3.MySQLを再起動します

systemctl restart mysqld

4.MySQLの実行ステータスを表示する

systemctl status mysqld

5.起動を設定します

systemctl enable mysqld

6、ブーツをオフにします

systemctl disable mysqld

トラブルシューティング

mysqlアカウントはリモートログインを許可されていません

デフォルトでは、mysqlアカウントはリモートログインを許可せず、ローカルホストでのみログインできます。この記事では、リモートホストを介して接続するようにmysqlを設定する2つの方法を提供します。

  • 1.テーブルメソッドの変更
    localhostからmysqlにログインした後、「mysql」データベースの「user」テーブルの「host」項目を変更し、「localhost」の名前を「%」に変更します。
#mysql -u root -p
Enter password:
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;


注:%は任意のクライアントを表し、特定のIPアドレスに置き換えることができます。

  • 2.認可法

例:myuserがmypassword(パスワード)を使用して任意のホストからmysqlサーバーに接続するようにしたい場合。

mysql> GRANT ALL PRIVILEGESON。TO'myuser '@'% 'IDENTIFIED BY'mypassword' WITH GRANT OPTION;

ユーザーmyuserがIPが192.168.1.6のホストからmysqlサーバーに接続できるようにし、mypasswordをパスワードとして使用する場合

mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES


デフォルトのエンコーディングをutf8として構成します。

vi /etc/my.cnf 

#追加

 [mysqld]

 character_set_server=utf8 
 init_connect='SET NAMES utf8'

その他の構成ファイル:

/etc/my.cnfログファイル:/var/log//var/log/mysqld.log

サービス起動スクリプト:/usr/lib/systemd/system/mysqld.service

ソケットファイル:/var/run/mysqld/mysqld.pid

大文字と小文字を区別しません


次の図に示すように、MySQLをインストールしたときにmy.cnfファイルを見つけます
。mysqldの下にlower_case_table_names = 1という行を追加します(1は大文字と小文字を区別せず、0は大文字と小文字を区別し、デフォルトは0です)

Mysqlへのリモート接続が遅すぎる

上記の接続タイムアウトの問題を解決しようとしましたが、それが役に立たないことがわかった場合でも、上記の問題は引き続き発生します。それで、Mysqlへのリモート接続が遅すぎて、接続がタイムアウトするのではないかと思いますか?CentOS7サーバーとWindowsネイティブNavicatでmysqlに接続するのに問題がないためです。オンラインで検索したところ、次の構成パラメーターがmysql構成ファイル/etc/my.cnfに追加されていることがわかりました。

#構成は[mysqld]の下に追加されることに注意してください

[mysqld]

スキップ-名前解決

次に、mysqlサービスを再起動する必要があります。指示に従って、mysqlホストがDNSを照会して解決すると、クライアントホストが多い場合に速度が低下したり、接続が遅くなったりするためです。同時に、この構成パラメーターを追加した後、これはドメイン名の解決を禁止した結果であるため、mysql認証テーブルのホストフィールドはドメイン名を使用できず、IPアドレスのみを使用できることに注意してください。

ファイアウォールからポートを開くか、ファイアウォールを閉じます

#systemctl statusfirewalldを介してfirewalldステータスを表示する

[root@localhost yum.repos.d]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

ファイアウォール設定をオフにしたい場合は、コマンドsystemctl stopfirewalldを使用して機能をオフにすることができます。

systemctl stop firewalld.service   #关闭防火墙

ファイアウォールを開始します

systemctl start firewalld

#systemctl status Firewalldを使用してfirewalldステータスを再度確認すると、実行がすでにオンになっていることが示されます。

ファイアウォールのリリースルールを増やします。

#firewall-cmd --permanent --zone = public --add-port = 3306 / tcpを再度実行し、成功を促し、設定が成功したことを示します。

firewall-cmd --permanent --zone=public --add-port=3306/tcp

このようにして、以下の設定を続けることができます。ファイアウォールをリロードします

firewall-cmd --reload

注:開発環境の場合は、ファイアウォールをオフにするだけです

报错:指定されたキーが長すぎました。キーの最大長は767バイトです

1エラー1071(42000):指定されたキーが長すぎました。キーの最大長は767バイトです

バージョン5.6ソリューション。rootアカウントを使用して、2つのグローバル変数を設定します。

set global innodb_large_prefix=on;
set global innodb_file_format=Barracuda;

报错:MySqlホストは多くの接続エラーのためにブロックされています。

特定の例外

MySql Hostは、多くの接続エラーのためにブロックされています。'mysqladminflush-hosts'でブロックを解除します

  • 原因分析:

Tomcatログファイルを確認し、このエラーがエラーレポートの最初に発生したことを確認しました。問い合わせたところ、間違った理由は次のとおりです。同じIPが、障害によって引き起こされたデータベース接続の中断を短時間で生成しすぎた(mysqlデータベースの最大接続最大エラーを超えた)。

  • 解決:

CentOS7サーバーに入ります。

  • 方法1:許可される最大接続エラーの数を増やす(症状を治療するが根本原因は治療しない):
  1. 最大接続エラーを表示するには、Mysqlデータベースに入ります。 '%max_connection_errors%'のような変数を表示します。
  2. 最大接続エラーの数を1000に変更します。setglobalmax_connect_errors= 1000;
  3. 変更が成功したかどうかを確認します。「%max_connection_errors%」のような変数を表示します。
  • 方法2:mysqladmin flush-hostsコマンドを使用して、hostsファイルをクリーンアップします。
  1. mysqladminのパスを見つけます:whereis mysqladmin
  2. 次のようなコマンドを実行します:/usr/local/mysql5.5.35/bin/mysqladmin -uroot -pyourpwd flush-hosts

注:方法2は、hostsファイルをクリーンアップします。mysqlデータベースに直接入力して、次のコマンドを実行することもできます。mysql> flush hosts;

クレイジーメーカーサークルに戻る

Crazy Maker Circle-Javaの同時実行性の高い研究コミュニティ、すべての人に大きな工場への扉を開く

おすすめ

転載: blog.csdn.net/crazymakercircle/article/details/111773678