マルチインスタンスMySQLは踏んだ穴をインストールします

4454 ワード

先週、試験機にMySQLをコンパイルしてアップグレードテストをしました.もともと試験機にはclusterクラスタの単一インスタンスがあり、衝突しないようにコンパイルインストールを選択しました.
 
コンパイルインストールの利点は、ソフトウェアインストールのディレクトリを自分で制御したり、デフォルトのプロファイルアドレスを指定したりすることで、ディスク管理が容易になり、アンインストールも便利になり、フォルダが削除されるとすぐに完了します.
MySQLのコンパイルインストールは公式サイトでsourceソースパッケージをダウンロードする必要があります.5.7のソースパッケージは約数十兆サイズですが、コンパイル中に発生したキャッシュファイルにはいくつかのGがあります.ここには必ずスペースを残してください.そうしないと、さまざまな後続の問題が発生します.
MySQLソースパッケージのコンパイルにはcmakeコマンドが使用されています.公式サイトにはsourceのインストール方法の説明があります.cmakeはboostファイルに接続すればいいです.ネット上の多くのコンパイルインストールのチュートリアルのようにフォルダパラメータを接続する必要はありません.私はネット上のcmakeがフォルダのコンパイルコマンドを接続することを学ばないことをお勧めします.後続MySQLのフォルダはすべてcnfプロファイルで作成でき、コンパイル時に作成する必要はなく、コンパイル時に後続の柔軟性変更を作成すると悪くなります.
cmakeはboostファイルを作成しなければならない.公式サイトでもこの点を説明している.公式ソースパッケージにはboostソースが付いていないのが一般的だ.本機にboostがインストールされていなければ、解決策は簡単だ.boostソースをダウンロードするだけで、makeをコンパイルすればいい.boostソースをコンパイルした.cmakeコンパイルMySQL、コンパイルコマンド:
cmake -DCMAKE_INSTALL_PREFIX=MySQL    ,      -DWITH_BOOST=boost  ,     boost      -DDOWNLOAD_BOOST=1 #mysql8                   ,      ,   help      

         boost        ,       ,       ,      boost,          

3つのコマンドがあれば十分です.ここのcmakeのコンパイルはすぐに、cmakeが終わったときに何の間違いもないことを確認します.何の間違いも解決してからcmakeをやり直します.cmakeをやり直したときはCMakecacheを削除する必要があります.txtはファイルをキャッシュし、コマンドを実行します.
cmakeが完了したらmakeコマンドを実行
ここでmakeの場合は長い時間がかかりますので、辛抱強く待ってください.makeが完了したら、エラーが発生したら、解決してからCmakeコンパイル処理をやり直してください.キャッシュを削除してからcmakeを削除してください.
make完了後にmake installを行い、インストールが速くなります
 
完了したらMySQLインストールフォルダに入ります.MySQLが最初に起動するときは初期化が必要です.ここでは初期化する前にcnfプロファイルを作成し、プロファイルに関連するディレクトリアドレスを作成する必要があります.だから、cmakeで作成する必要はありません.後でアドレスを変更するには、プロファイルで交換すればいいだけです.
[root@localhost mysql]# cat mysql5.7-3306.cnf 
[mysqld]
server-id=1
port=3306
basedir=/app/mysql5.7-3306
datadir=/data/mysql5.7-3306/data
socket=/data/mysql5.7-3306/mysql.sock
symbolic-links=0

#general
max_connections=2000
max_allowed_packet=64M

#mysql8           ,    ,        
query_cache_size=0
query_cache_type=OFF

sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
event_scheduler=ON
lower_case_table_names=1

#logfile
log-error=/data/mysql5.7-3306/log/mysqld.log
pid-file=/data/mysql5.7-3306/mysqld.pid
log-bin=/data/mysql5.7-3306/binlog/mysql-bin
expire_logs_days=3
binlog_format=ROW
log_slave_updates=ON

slow_query_log=1
slow_query_log_file=/data/mysql5.7-3306/log/slow_query.log
long_query_time=2

#innodb
innodb_buffer_pool_size=4G
innodb_log_file_size=1024M
innodb_log_files_in_group=2
innodb_flush_method=O_DIRECT
innodb_buffer_pool_instances=4

#Replication
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=ON

以上が私のプロファイルです
編集後、MySQLインストールフォルダにアクセスしてinitialize初期化MySQL
binディレクトリの実行に入ります.
./mysqld --defaults-file=       --initialize --user=mysql

実行後、プロファイル構成のlogアドレスに基づいて初期化されたlogファイルgrepを見つけrootパスワードを見つけます.
次のように、後で起動するときもプロファイルを作成して起動します.
./mysql --defaults-file=     -uroot -p -h127.0.0.1 -P3306

踏んだ穴は、上で強調した基本的には通り過ぎた穴です
MySQLのコンパイルの时必ずスペースを残して、ディスクの原因のため、私は3回繰り返しインストールしました
MySQL再コンパイルの際は必ずcmake以前のキャッシュファイルを削除してください
Initializeを初期化するときは、初期化を繰り返すことができます.初期化するたびに、作成したdataフォルダlog data binlogの下のデータを削除する必要があることを覚えておいてください.
フォルダを作成するときは必ずMySQLユーザーに許可してください
マルチインスタンスであるため、通常の方法で勝手に起動することはできません.defaults-fileパラメータを作成しなければなりません.通常の起動はデフォルトでインストールされているMySQLパスを指し、さまざまなエラーが発生します.初期化しても起動してもdefaults-fileパラメータを追加し、最初のパラメータの位置に置く必要があります.
マルチインスタンスの場合はポート競合があるので、起動時にipとポートを持って、本機のデフォルトのMySQLと競合しないようにしたほうがいいです.
コンパイルインストールの最大の利点は、いくつかのMySQLをインストールすることができますが、このようなテスターにとって、自分にいくつかインストールしてゆっくり遊ぶことができます.
指定したデータベースのエクスポート・スクリプトの例を示します.
mysqldump -uroot -p -d --set-gtid-purged=OFF \
--events \
--routines \
--single-transaction \
--database \
apolloportaldbapp \
bone2.0 \
canal_test \
card_db \
finger_db \
jf_pnms_server_yjf_rdstest \
jf_pnms_server_yjf_test \
jf_pnms_test3 \
jfcms_temp \
jfdd_db_back \
mrbird \
new_bussiness_extend \
newsetmealtg_db \
otter \
persons \
reward \
ry \
short_url_db \
teledata \
telefen__user \
vhr \
wx_opendb > /home/data/215new.sql

ここでいくつかのパラメータ提案バンドではset-gtid-purgedが後続のGTIDインポートエラーに影響し、single-transactionがエクスポートアクセスエラーに影響してアクセスできない、-d
データエクスポート構造をエクスポートしないで、絶対に-tと混同しないでください、-tエクスポートのデータはcreate table文がなくて、インポートは表にアクセスできないことを報告して、eventsは物事をエクスポートして、routinesエクスポートは保存して、このいくつかのパラメータは持っていないでいくつかのデータベースの報告が間違っている可能性があって、携帯することを提案します.