UbuntuにMySQLをインストールして構成する

1。 [** MySQL ](https://cloud.tencent.com/product/cdb?from=10680) 3つのインストール方法:**

1 )インターネットからインストールする

sudo apt-get install mysql-server

注:/etc/apt/source.listのcnをusに変更することをお勧めします。米国のサーバーは中国のサーバーよりもはるかに高速です。変更コマンドは次のとおりです。sudosed-i "s / cn / us / g" sources.list

2 )オフラインパッケージをインストールする

例として[mysql-5.5.16-linux2.6-x86_64.tar.gz](http://dev.mysql.com/downloads/mysql/)、mysql [公式ウェブサイト](http://dev.mysql.com/downloads/)を取り上げます。

3 )バイナリパッケージのインストール

インストールが完了すると、環境変数が自動的に構成されます。mysqlコマンドを直接使用できます。

オンラインインストール(1)とバイナリパッケージインストール(3)は比較的簡単で、オフラインパッケージ(2)のインストールに重点を置いています。

  1. groupadd mysql

  2. mkdir /home/mysql

  3. useradd -g mysql -d /home/mysql mysql

  4. mysql-5.0.45-linux-i686-icc-glibc23.tar.gzを/ usr / localディレクトリにコピーします

  5. 解凍:tar zxvf mysql-5.5.16-linux2.6-x86_64.tar.gz

  6. ln -s mysql-5.0.45-linux-i686-icc-glibc23 mysql

  7. cd /usr/local/mysql

  8. chown -R mysql .

  9. chgrp -R mysql .

  10. scripts / mysql_install_db --user = mysql(mysqlディレクトリで実行する必要があります。出力テキストに注意してください。ルートパスワードを変更してmysqlを起動するコマンドがあります)

  11. rootのパスワードを設定します:./ bin / mysqladmin -u root password'passw0rd '

2. msyqlを構成および管理します:

  1. mysql接続の最大数を変更します:cp support-files / my-medium.cnf ./my.cnf、vim my.cnf、max_connections = 1024を増やすか変更します

my.cnfについて:mysqlは、my.cnf:/ etc、mysqlインストールディレクトリ、およびインストールディレクトリ内のデータを次の順序で検索します。 / etcの下にはグローバル設定があります。

  1. mysqlを起動します:/ usr / local / mysql / bin / mysqld_safe --user = mysql&またはmysqld_safe&(事前にmysql / binを/ etc / profileに設定し、ソース/ etc / profileを有効にする必要があります)

注:オンラインインストールまたはバイナリインストールの場合、次のコマンドを直接使用してmysqlを開始および停止できます:/etc/init.d/mysql start | stop | restart

  1. mysqlを停止します:mysqladmin -uroot -ppassw0rd shutdown(u、pの後にスペースがないことに注意してください)

  2. mysqlを自動的に開始するように設定します。startupコマンドを/etc/rc.localファイルに追加します

5. ルートリモートログインを許可する:

1)このマシンでmysqlにログインします。mysql-uroot -p(-pが必要です);データベースを変更します:use mysql;

2)すべてのホストから:*。*のすべての特権を、許可オプションを使用して「password」で識別されるroot @ "%"に付与します。

3)指定されたホストから:*。*のすべての特権を、許可オプションを使用して「password」で識別されるroot @ "192.168.11.205"に付与します。

4)mysqlライブラリに入り、ホストが%であるデータが追加されているかどうかを確認します。mysqlを使用します。select* from user;

  1. 読み取り専用ダンプデータベース:mysqldump -h 172.192.1.12 -uroot -p123456 --single-transaction your_db> your_db_bk.sql

  2. MySQLポートを介してリモートでmysqlに接続します。mysql-h122.128.10.114-P 31206 -uroot -pyg123456 // -Pmysqlポートは/etc/mysql/my.cnf構成ファイルで構成されます。-ppassword

6. データベースを作成し、ユーザーを作成します:

1)データベースを構築します。データベースtest1を作成します。

2)ユーザーを作成し、権限を付与します。test1。*のすべての権限を、付与オプションを使用して「password」で識別されるuser_test @ "%"に付与します。

3)データベースを削除します。dropdatabasetest1;

7. 削除権限:

1) revoke all privileges on test1.* from test1@"%";

2) use mysql;

3) delete from user where user="root" and host="%";

4) flush privileges;

  1. すべてのデータベースを表示:データベースを表示;データベース内のすべてのテーブルを表示:テーブルを表示;

  2. mysqlへのリモートログイン:mysql -h ip -u user -p

10. 文字セットを設定します(例としてutf8を取り上げます)。

1)現在のエンコーディングを表示します。「character%」などの変数を表示します。

2)my.cnfを変更し、[client]の下にdefault-character-set = utf8を追加します。

3)[サーバー]の下にdefault-character-set = utf8、init_connect = 'SET NAMESutf8;'を追加します。

4)mysqlを再起動します。

注:クライアント設定を有効にするには、/ etcの下のmy.cnfのみを変更してください。インストールディレクトリの下の設定では、サーバー設定のみを有効にすることができます。バイナリインストール用に/etc/mysql/my.cnfを変更します

**11. 古いデータをutf8 **にアップグレードします(例として、古いデータはlatin1です)。

1)古いデータをエクスポートします:mysqldump --default-character-set = latin1 -hlocalhost -uroot -B dbname --tables old_table> old.sql

2)変換エンコーディング(LinuxおよびUNIX):iconv -t utf-8 -f gb2312 -c old.sql> new.sqlここでは、元のテーブルのデータがgb2312であると想定しています。-fを削除して、iconvに元の文字を自動的に判別させることもできます。セットする。

3)インポート:new.sqlを変更し、挿入または変更ステートメントの前に「SET NAMES utf8;」という文を追加し、すべてのgb2312をutf8に変更して保存します。

mysql -hlocalhost -uroot -p dbname < new.sql

max_allowed_packetのエラーが報告された場合は、ファイルが大きすぎることが原因です。mysqlのデフォルトパラメータは1Mです。my.cnfで値を変更できます(mysqlを再起動する必要があります)。

12. utf8をサポートするクライアント:

Mysql-Front、Navicat、PhpMyAdmin、Linux Shell(接続後、SET NAMES utf8を実行します。その後、utf8データを読み書きできます。10.4が設定された後は、この文を実行する必要はありません)

13. バックアップと復元

単一のデータベースをバックアップします:mysqldump -u root -p -B dbname> dbname.sql

すべてのデータベースをバックアップします:mysqldump -u root -p --all-databases> all.sql

バックアップテーブル:mysqldump -u root -p -B dbname --table tablename> tablename.sql

データベースを復元します。mysql-uroot-p name <name.sql

リカバリテーブル:mysql -u root -p dbname <name.sql(データベースを指定する必要がありますが、テーブルは指定されたデータベースに配置する必要があるため、テーブルを指定できない場合があります、haha)

14. コピー

Mysqlは、一方向の非同期レプリケーションをサポートします。つまり、1つのサーバーがマスターサーバーとして機能し、1つ以上の他のサーバーがスレーブサーバーとして機能します。レプリケーションは、マスターサーバーが書き込み、スレーブサーバーが読み取るバイナリログを介して行われます。複数のマスターサーバーを実装できますが、単一のサーバーでこれまで発生したことのない問題が発生します(推奨されません)。

1)マスターサーバーでレプリケーション専用のユーザーを作成します。*。*のレプリケーションスレーブを 'iverson'で識別される['replicationuser' @ '192.168.0.87'](https://blog.csdn.net/mailto:'%20rel=)に付与します。

2)メインサーバー上のすべてのテーブルとブロック書き込みステートメントをフラッシュします:読み取りロックでテーブルをフラッシュします;次に、メインサーバー上のバイナリバイナリファイル名とブランチを読み取ります:SHOW MASTERSTATUS;ファイルと位置の値を記録します。記録後にメインサーバーをシャットダウンします:mysqladmin -uroot -ppassw0rd shutdown

出力が空白の場合は、サーバーがバイナリロギングを有効にしていないことを意味します。my.cnfファイルの[mysqld]の下にlog-bin = mysql-binを追加すると、再起動後に使用できるようになります。

3)メインサーバーのスナップショットを作成します(スナップショット)

マスターサーバーにコピーする必要のあるデータベースのスナップショットを作成する必要があります。Windowsはzip形式を使用でき、LinuxとUnixはtarコマンドを使用するのに最適です。次に、それをスレーブサーバーmysqlのデータディレクトリにアップロードして解凍します。

cd mysql-data-dir

tar cvzf mysql-snapshot.tar ./mydb

注:スナップショットには、ログファイルや* .infoファイルを含めないでください。コピーするデータベースのデータファイル(* .frmおよび* .opt)ファイルのみを含める必要があります。

データベースバックアップ(mysqldump)を使用してサーバーからデータを復元し、データの一貫性を確保できます。

4)メインサーバーのmy.cnfファイルの[mysqld]セクションにlog-binオプションとserver-idが含まれていることを確認し、メインサーバーを起動します。

[mysqld]

log-bin=mysql-bin

server-id=1

5)スレーブサーバーを停止し、server-idを追加してから、スレーブサーバーを起動します。

[mysqld]

server-id=2

注:ここでのserver-idはスレーブサーバーのIDであり、マスターサーバーや他のスレーブサーバーとは異なる必要があります。

読み取り専用オプションをスレーブサーバーの構成ファイルに追加して、スレーブサーバーがマスターサーバーからのSQLのみを受け入れ、データが他の手段で変更されないようにすることができます。

6)スレーブサーバーで次のステートメントを実行し、オプションをシステムの実際の値に置き換えます。

change master to MASTER_HOST='master_host', MASTER_USER='replication_user',MASTER_PASSWORD='replication_pwd',

MASTER_LOG_FILE='recorded_log_file_name',MASTER_LOG_POS=log_position;

7)。スレーブスレッドを開始します:mysql> START SLAVE;スレーブスレッドを停止します:stop slave;(注:マスターサーバーのファイアウォールは、ポート3306の接続を許可する必要があります)

検証:この時点で、マスターサーバーとスレーブサーバーのデータは同じである必要があります。マスターサーバーのデータの挿入、変更、削除はスレーブサーバーに更新され、テーブルの作成と削除は同じです。

一般的に使用されるコマンド:

1 )バージョンを表示

mysqladmin -u root -p version

2 )Mysql接続に失敗しました

例外:エラー2003(HY000):MySQLサーバーに接続できません

解決する:

1.提起された質問

/usr/local/webserver/mysql/bin/mysql -u root -h 172.29.141.112  -p -S /tmp/mysql.sock
Enter password: 
ERROR 2003 (HY000): Can't connect to MySQL server on '172.29.141.112' (113)

2.問題分析

上記の問題には、次の可能性があります

**1.**スキップネットワーキングは、my.cnf構成ファイルで構成されます

skip-networkingパラメーターを使用すると、すべてのTCP / IPポートが監視されなくなります。つまり、ローカルマシンの外にある場合、他のクライアントはネットワークを使用してmysqlサーバーに接続できません。

したがって、このパラメータをコメントアウトする必要があります。

**2.**my.cnf構成ファイル内のbindaddressのパラメーター構成

bindaddress、一部はbind-addressです。このパラメーターは、どのIPアドレスを構成するかを指定するためのものであり、mysqlサーバーはどのIPアドレス要求にのみ応答するため、このパラメーターをコメントアウトする必要があります。

**3.**ファイアウォールの理由

/etc/init.d/iptablesstopを使用してファイアウォールをオフにします

私の問題はこの理由によって引き起こされます。 mysqlサーバーのファイアウォールをオフにすることで使用できます。

3.問題の解決

**1.**上記の最初の理由である場合は、my.cnfを見つけて、skip-networkingパラメーターをコメントアウトします。

sed -i  's%skip-networking%#skip-networking%g'  my.cnf

**2.**上記の2番目の理由である場合は、my.cnfを見つけて、bind-addressパラメーターをコメントアウトします。

sed -i  's%bind-address%#bind-address%g'    my.cnf

sed -i  's%bindaddress%#bindaddress%g'      my.cnf

このパラメータを変更した後、確認することをお勧めします。

**3.**上記の3番目の理由である場合は、ファイアウォールをオフにするか、それに応じて構成します

/etc/init.d/iptables stop

追加:

1 )処理中のプロセスを表示します。

show  processlist;

2 )データベースが占めるスペースを表示します。

show  table  status  from  some_database;

例:** top_500 **からのテーブルステータスの表示;#top_500はデータベースです

SELECT  table_schema  top_500sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ;

クエリ結果は次のとおりです。

参考資料:

[ Ubuntuのインストールと構成Mysql](http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html)

[ MySQLコマンド操作(Linuxプラットフォーム)](http://blog.csdn.net/sunboy_2050/article/details/6856358)

[ Ubuntu12.04にMySQL5.5.25をインストールします](http://www.cnblogs.com/eastson/archive/2012/06/09/2543489.html)

Recommended Posts

UbuntuにMySQLをインストールして構成する
Ubuntu14.04にmysqlをインストールします
ubuntuはGitLabをインストールして構成します
MysqlをUbuntuにオフラインでインストールする
Ubuntu16.04にNATSをインストールして構成する方法
Ubuntu 16.04にJDKをインストールし、環境変数を構成します
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu16.04にownCloudをインストールして構成する方法
Ubuntu18.04にGitLabをインストールして構成する方法
Ubuntu18.04にAnsibleをインストールして構成する方法
Ubuntu16.04にElasticsearchをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu18.04にVNCをインストールして構成する方法
Ubuntu16.04にSphinxをインストールして構成する方法
Ubuntu14.04にOrientDBをインストールして構成する方法
Ubuntu12.04にAppScaleをインストールして構成する方法
Ubuntu14.04にPostGISをインストールして構成する方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu20.04にMySQLをインストールする方法
Ubuntu18.04にMySQLWorkbenchをインストールして使用する方法
UbuntuにDockerをインストールして構成する
Ubuntu14.04にMySQLをインストールする方法
UbuntuサーバーにMono本番環境をインストールして構成します
Ubuntu 18.04linuxシステムにJDKとMysqlをインストールする方法
UbuntuサーバーにGnomeとVNCをインストールする
Ubuntu 18.04(linux)にMySQLをインストールする方法
ubuntuと基本的な使用法にdockerをインストールします
Ubuntuにフォントをインストールし、デフォルトのフォントを切り替えます
UbuntuにCUDAとCUDNNをインストールしてアンインストールします
ubuntu18にvscodeをインストールします
UbuntuにRedisをインストールする
ubuntu20にR4をインストールします
Ubuntu18.04にpostgresql-10をインストールします
Ubuntuにdockerをインストールする
Ubuntu16.04にmysqlをインストールします
ubuntu18.04にDockerをインストールします
Ubuntu16にnodejs10をインストールします
UbuntuにDjangoをインストールします
Ubuntu16.04にPytorch + CUDAをインストールします
Ubuntu14.04にPython3をインストールします
Ubuntu19はMySQLピットをインストールします
Ubuntu18にrJavaをインストールします
UbuntuにJDK10 +をインストールする
Ubuntu16.04にPython3をインストールします
UbuntuにMySQLをインストールする
Ubuntu16.04.2にKDEをインストールします
Ubuntu18にDockerをインストールする
UbuntuにPython3.7をインストールする
Ubuntuにflashplayerをインストールする
Ubuntu 16.04 /18.04にPycharmとIpythonをインストールする方法
CentOS7にElasticsearchをインストールして構成する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
UbuntuLinuxにGitとGitHubをインストールして使用する
Ubuntu20.04にDockerをインストールして使用する方法
CentOS8にVNCをインストールして構成する方法
Ubuntu18.04にCurlをインストールして使用する方法
Ubuntu18.04にComposerをインストールして使用する方法
Ubuntu18.04にWineをインストールして使用する方法
Ubuntu16.04にphpMyAdminをインストールして保護する方法
CentOS8にRedisをインストールして構成する方法
Ubuntu20.04にComposerをインストールして使用する方法