まず、MySQLのバイナリパッケージをダウンロードしてください
いくつかは求めることができる:なぜバイナリパッケージを?
主に、すべての機能がよく構成されたバイナリパッケージがしているので!
生産やテスト環境は、一般的にGAバージョンを選択します(一般的に入手可能なバージョン、修復バグがテストした後)
コマンドをダウンロードします。
# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
Quguanをダウンロードするか、自分自身のウェブサイト
URL https://dev.mysql.com/downloads/
図は次のとおりです。
MD5チェックサムはダウンロードが完了した後、ダウンロードプロセス中に何の問題もなく、必ずパッケージを作る行って、正常に使用することができます。
# md5sum mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
インストールの前に第二に、環境検知システム
インストールされたMySQLデータベースで成功する、後半データベースの最適化作業を行う、非常に必要なの早期発見におけるLinuxベースのシステムにするために!
1、SELinuxのファイアウォールシステムをオフにします
SELinuxは設定後、システムを再起動し、無効に設定しました
# vim /etc/selinux/config
7 SELINUX=disabled
閉じるfirewalldファイアウォール
# systemctl stop firewalld
# systemctl disable firewalld
# systemctl mask firewalld.service
iptablesのインストール
# yum install iptables-services.x86_64 -y
# systemctl status iptables
2、スワップパーティションの設定
swappinessのサイズは、スワップパーティションの値に大きな影響を与えます
- あなたは、メモリ、OOMエラーからシステムを引き起こす可能性がスワップパーティションを、使用前に0は事故がMySQLを殺す引き起こし、最大物理メモリを表し、
- 100は、移動スワップ・パーティション上記メモリにスワップパーティションを積極的に利用し、タイムリーなデータです。
- 推奨しないアロケーション・スワップまたは割り当てられた領域の4ギガバイト
ビューswappinessをファイル
# cat /proc/sys/vm/swappiness
30
# sysctl -a | grep swap
vm.swappiness = 30
オプション3、ファイルシステム
これは、ext4は、管理しやすく、動的な拡張のサポートに比べ、XFSをお勧めします。
4、オペレーティングシステムの制限
お使いのオペレーティングシステム上で電流制限を見ます
# ulimit -a
注意
開いているファイル(-n)1024の
最大ユーザ・プロセス(-u)7179
与えられている理由の制限を避けるために、システムのソフトウェアとハードウェアの制限を変更します!
# vim /etc/security/limits.conf
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
- 変更後は、必要性を有効にするには、オペレーティングシステムを再起動します
5、NUMAを閉じました
閉じる沼機能、あなたがより良いメモリを割り当てることができ、スワップメモリの使用を取得する方法は、(スワップは、データベースのパフォーマンスの低下につながりません)
三、MySQL5.7のインストール
1、MySQLユーザーの確立
# groupadd mysql
# useradd -g mysql mysql -s /sbin/nologin
2、解凍、ソフトリンク
ベースとしては/ usr / local /ディレクトリ
# cd /usr/local/
減圧
# tar zxf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
将来のアップグレードが容易なソフトリンク、して
mysqlのディレクトリのパーミッションへ
# ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql
# chown mysql:mysql -R mysql
3、データディレクトリを確立
- 一般的な許可が指定されたディレクトリことを立証するために必要です
# mkdir -p /data/mysql/
# chown -R mysql:mysql /data/mysql/
4、設定ファイルを編集
- それはバイナリファイルであるため、データベース構成ファイルは、ここでは自分の利益を設定する必要があります
# vim /etc/my.cnf
#my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysql]
prompt="\\u@\\h [\\d]>"
#pager="less -i -n -S"
#tee=/opt/mysql/query.log
no-auto-rehash
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /data/mysql/mysqld_multi.log
[mysqld]
#misc
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/
port = 3306
socket = /tmp/mysql.sock
event_scheduler = 0
tmpdir = /data/mysql/
#timeout
interactive_timeout = 300
wait_timeout = 300
#character set
character-set-server = utf8
open_files_limit = 65535
max_connections = 100
max_connect_errors = 100000
#lower_case_table_names =1
#logs
log-output=file
slow_query_log = 1
slow_query_log_file = /data/mysql/slow.log
log-error = /data/mysql/error.log
log_warnings = 2
pid-file = mysql.pid
long_query_time = 1
#log-slow-admin-statements = 1
#log-queries-not-using-indexes = 1
log-slow-slave-statements = 1
#binlog
#binlog_format = STATEMENT
binlog_format = row
server-id = 1003306
log-bin = /data/mysql/mysql-bin
binlog_cache_size = 4M
max_binlog_size = 256M
max_binlog_cache_size = 1M
sync_binlog = 0
expire_logs_days = 10
#procedure
log_bin_trust_function_creators=1
#
gtid-mode = 0
#relay log
skip_slave_start = 1
max_relay_log_size = 128M
relay_log_purge = 1
relay_log_recovery = 1
relay-log=relay-bin
relay-log-index=relay-bin.index
log_slave_updates
#slave-skip-errors=1032,1053,1062
#skip-grant-tables
#buffers & cache
table_open_cache = 2048
table_definition_cache = 2048
table_open_cache = 2048
max_heap_table_size = 96M
sort_buffer_size = 128K
join_buffer_size = 128K
thread_cache_size = 200
query_cache_size = 0
query_cache_type = 0
query_cache_limit = 256K
query_cache_min_res_unit = 512
thread_stack = 192K
tmp_table_size = 96M
key_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 32M
#myisam
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
#innodb
innodb_buffer_pool_size = 1024M
innodb_buffer_pool_instances = 1
innodb_data_file_path = ibdata1:100M:autoextend
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_file_size = 100M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 50
innodb_file_per_table = 1
innodb_rollback_on_timeout
innodb_status_file = 1
innodb_io_capacity = 2000
transaction_isolation = REPEATABLE-READ
innodb_flush_method = O_DIRECT
5.データベースを起動します
# cd /usr/local/mysql/bin
#初始化
# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --initialize
#启动
#./mysqld_safe --defaults-file=/etc/my.cnf &
- -initializeログエラーに記録された一時的なデータベース初期生成されたパスワードを表し、
パスワード入力がないことを示し-initialize、安全でないと
6、着陸データベース
初期パスワードを見ます
# cat /data/mysql/error.log | grep password
着陸
# ./mysql -u root -p
7、パスワードをリセット
root@localhost [(none)]>SET PASSWORD = 'root123'; #更改密码
root@localhost [(none)]>ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; #永不过期
root@localhost [(none)]>flush privileges; #刷新权限
8は、MySQLデータベースをシャットダウン
ノーマルクローズ
# cd /usr/local/mysql/bin/
# ./mysqladmin -uroot -proot123 shutdown
非通常のシャットダウンプロセスは、MySQLを殺す必要があります
便宜上、環境変数は、MySQLに参加します
# vim /etc/profile
PATH="$PATH":/usr/local/mysql/bin #加入
# source /etc/profile