まず、準備作業
1.1、カタログの企画
(1)/ MySQLの別の論理ボリューム。
MKDIR / MySQLの lvcreateの-n lv_mysql -L + 100グラムVG mkfs.ext4は/ dev /マッパー/ VG-lv_mysql エコー "は/ dev /マッパーは/ VG-lv_mysql / mysqlのext4のデフォルトは0 0" >>の/ etc / fstabに -aマウント |
(2)適切なディレクトリサービスポートに応じてデータベースを作成します。
/ mysqlの/ 3306 / |
ます。mkdir -p / mysqlの/ 3306 / ます。mkdir -p / mysqlの/ 3306 /データ/ ます。mkdir -p / mysqlの/ 3306 /ビンログ/ ます。mkdir -p / mysqlの/ 3306 /ログ/ ます。mkdir -p / mysqlの/ 3306を/ tmp / ます。mkdir -p / mysqlの/ 3306 / undolog / |
/ mysqlの/ 3306 /データ/ |
|
/ mysqlの/ 3306 /ビンログ/ |
|
/ mysqlの/ 3306 /ログ/ |
|
/ mysqlの/ 3306を/ tmp / |
|
/ mysqlの/ 3306 / undolog / |
1.2、パッケージの準備ができて
(1)5.7.19バージョンを使用し、準備し、rpmのインストールパッケージをアップロードします。
mysqlの-5.7.19-1.el6.x86_64.rpm-bundle.tar
第二に、インストールプロセス
2.1、存在アンインストール中に、オペレーティング・システムの以前のバージョン
データベース(1)検査システムの古いバージョンが存在する場合
ます。rpm -qa | grepを-i mysqlの |
(2)データベースの古いバージョンをアンインストールします
ます。rpm -qa | grepを-i mysqlの| xargsのrpmの-e --nodeps RM -rfは/ usr / lib64に/ mysqlの/ userdelのmysqlの groupdelグループのmysql |
2.2は、MySQL 5.7.19をインストール
(1)に依存するRPMパッケージを参照してください。
ます。rpm -qa | grepの-iバイソン ます。rpm -qa | グレップ-i GCC-C ++ ます。rpm -qa | grepの-iのglibc ます。rpm -qa | grepの-i perlの ます。rpm -qa | grepの-iのncurses ます。rpm -qa | grepの-iのncurses-develの ます。rpm -qa | grepの-iのlibaio |
(2)MySQLユーザを作成
groupaddの-g 600のmysql useraddの-u 601 -g mysqlのmysqlの passwdのmysqlの |
(3)必要なRPMパッケージをインストールします
RPM -ivh MySQLのコミュニティ・コモン5.7.19-1.el6.x86_64.rpm RPM -ivh MySQLのコミュニティ-LIBS-5.7.19-1.el6.x86_64.rpm RPM -ivh MySQLのコミュニティ-LIBS-compatの-5.7.19-1.el6.x86_64.rpm RPM -ivh MySQLのコミュニティ・クライアント5.7.19-1.el6.x86_64.rpm RPM -ivh MySQLのコミュニティ・サーバ5.7.19-1.el6.x86_64.rpm |
(4)パラメータ
rootユーザー
VI〜/ .bash_profileの
PATH = $ PATHの:$ HOME / binにします。/ usr / binに:を/ usr / share / mysqlの場合:/ var / libに/ mysqlの |
我々は/etc/security/limits.confを
MySQLのソフトNPROC 16384 16384 NPROCハードのmysql MySQLのソフトNOFILE 65536 65536 NOFILEハードのmysql mysqlのハードスタック1024000 MySQLのソフトスタック1024000 |
私たちはな/etc/my.cnf
[クライアント] #クライアント# ポート= 3306 socket=/var/lib/mysql/mysql.sock #socket文件路径,需要根据实际情况修改 default-character-set = utf8
[mysqld] # GENERAL # basedir = /usr #软件存放路径,需要根据实际情况修改 datadir=/mysql/3306/data #data存放路径,需要根据实际情况修改 socket = /var/lib/mysql/mysql.sock #socket文件路径,需要根据实际情况修改 pid-file = /var/run/mysqld/mysqld.pid #pidfile文件路径,需要根据实际情况修改 server-id = 1 #需要根据实际情况修改 sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
user = mysql default_storage_engine = InnoDB character-set-server = utf8 skip-external-locking skip-host-cache skip-name-resolve autocommit = on max_allowed_packet = 16M max_connections = 1000 max_user_connections = 1000 max_connect_errors = 1000000 wait_timeout = 1800 transaction_isolation = READ-COMMITTED explicit_defaults_for_timestamp = 1 query-cache-type = 0 query-cache-size = 0 thread-cache-size = 50 open-files-limit = 65535 tmpdir = /mysql/3306/tmp #tmp文件存放路径,需要根据实际情况修改 slave_load_tmpdir = /mysql/3306/tmp #tmp文件存放路径,需要根据实际情况修改
# session memory settings # tmp-table-size = 32M max-heap-table-size = 32M read_buffer_size = 16M read_rnd_buffer_size = 32M sort_buffer_size = 32M join_buffer_size = 64M key-buffer-size = 64M
# table cache performance settings # table_open_cache = 4096 table_definition_cache = 4096 table_open_cache_instances = 64 #最大64
# INNODB # innodb_open_files=2048 innodb_buffer_pool_size = RAM*60% #innodb缓冲池大小,需要根据实际情况修改,建议为RAM的60%-70% innodb_sort_buffer_size = 64M innodb_buffer_pool_instances = 8 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_lru_scan_depth = 2000 innodb_io_capacity = 2000 innodb_io_capacity_max = 4000 innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_purge_threads = 4 innodb_large_prefix = 1 innodb_thread_concurrency = 64 innodb_print_all_deadlocks = 1 innodb_log_file_size = 1G innodb_log_buffer_size = 16M innodb_log_files_in_group = 2 innodb_file_per_table=1 innodb-strict-mode = 1 innodb_flush_log_at_trx_commit = 1 innodb_log_files_in_group = 3 innodb_flush_method = O_DIRECT innodb_undo_directory=/mysql/3306/undolog innodb_undo_logs = 128 innodb_undo_tablespaces = 3
# BINARY LOGGING # log-bin = /mysql/3306/binlog/bin.log #binlog存放路径,需要根据实际情况修改 expire-logs-days = 7 sync-binlog = 1 binlog_format="ROW" log_bin_trust_function_creators = 1 binlog_cache_size = 2097152
# LOGGING # log-error = /mysql/3306/log/error.log #errorlog存放路径,需要根据实际情况修改 log-queries-not-using-indexes = 1 slow-query-log = 1 slow-query-log-file = /mysql/3306/log/slowquery.log #slowlog存放路径,需要根据实际情况修改 long_query_time = 2 min_examined_row_limit = 100
[mysqld-5.6] # metalock performance settings metadata_locks_hash_instances=64
[mysqld-5.7] # new innodb settings # loose_innodb_numa_interleave=1 innodb_buffer_pool_dump_pct = 40 innodb_page_cleaners = 6 innodb_undo_log_truncate = 1 innodb_max_undo_log_size = 2G innodb_purge_rseg_truncate_frequency = 128 |
(5)权限修改
chown -R mysql:mysql /usr/share/mysql chown -R mysql:mysql /mysql chmod -R 755 /mysql |
(6)启动
备注:第一次执行service mysqld start ,mysql会自动根据/etc/my.cnf参数创建数据库。
service mysqld start
[root@oracle12c mysql]# service mysqld start Initializing MySQL database: [ OK ] Starting mysqld: [ OK ] |
(7)root初始密码修改
grep 'temporary password' /var/log/mysqld.log mysql -uroot -p mysql> set global validate_password_policy=0; mysql> set global validate_password_length=5; mysql>ALTER USER USER() IDENTIFIED BY '12345678'; mysql>flush privileges; |
三、单主机多mysql数据库服务配置过程
在不关闭/重启mysql的情况下,重新启动一个新的mysql实例,使用3390端口,实现一台机器上同时运行两个数据库实例。
3.1、创建新的mysql实例数据存储目录
/mysql/3390/ |
mkdir -p /mysql/3390/ mkdir -p /mysql/3390/data/ mkdir -p /mysql/3390/binlog/ mkdir -p /mysql/3390/log/ mkdir -p /mysql/3390/tmp/ mkdir -p /mysql/3390/undolog/ |
/mysql/3390/data/ |
|
/mysql/3390/binlog/ |
|
/mysql/3390/log/ |
|
/mysql/3390/tmp/ |
|
/mysql/3390/undolog/ |
3.2、复制一份 my.cnf配置文件
cp /etc/my.cnf /mysql/3390/my.cnf |
3.3、修改/mysql/3390/my.cnf文件,把默认的3306端口改成 3390,根据实际情况修改pid-file,socket,basedir,datadir
[client] # CLIENT # port = 3390 socket=/mysql/3390/mysql.sock #socket文件路径,需要根据实际情况修改 default-character-set = utf8
[mysqld] # GENERAL # port = 3390 basedir = /usr #软件存放路径,需要根据实际情况修改 datadir=/mysql/3390/data #data存放路径,需要根据实际情况修改 socket = /mysql/3390/mysql.sock #socket文件路径,需要根据实际情况修改 pid-file = /mysql/3390/mysqld.pid #pidfile文件路径,需要根据实际情况修改 server-id = 2 #需要根据实际情况修改 sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
user = mysql default_storage_engine = InnoDB character-set-server = utf8 skip-external-locking skip-host-cache skip-name-resolve autocommit = on max_allowed_packet = 16M max_connections = 1000 max_user_connections = 1000 max_connect_errors = 1000000 wait_timeout = 1800 transaction_isolation = READ-COMMITTED explicit_defaults_for_timestamp = 1 query-cache-type = 0 query-cache-size = 0 thread-cache-size = 50 open-files-limit = 65535 tmpdir = /mysql/3390/tmp #tmp文件存放路径,需要根据实际情况修改 slave_load_tmpdir = /mysql/3390/tmp #tmp文件存放路径,需要根据实际情况修改
# session memory settings # tmp-table-size = 32M max-heap-table-size = 32M read_buffer_size = 16M read_rnd_buffer_size = 32M sort_buffer_size = 32M join_buffer_size = 64M key-buffer-size = 64M
# table cache performance settings # table_open_cache = 4096 table_definition_cache = 4096 table_open_cache_instances = 64 #最大64
# INNODB # innodb_open_files=2048 innodb_buffer_pool_size = 300M #innodb缓冲池大小,需要根据实际情况修改,建议为RAM的60%-70% innodb_sort_buffer_size = 64M innodb_buffer_pool_instances = 8 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_lru_scan_depth = 2000 innodb_io_capacity = 2000 innodb_io_capacity_max = 4000 innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_purge_threads = 4 innodb_large_prefix = 1 innodb_thread_concurrency = 64 innodb_print_all_deadlocks = 1 innodb_log_file_size = 1G innodb_log_buffer_size = 16M innodb_log_files_in_group = 2 innodb_file_per_table=1 innodb-strict-mode = 1 innodb_flush_log_at_trx_commit = 1 innodb_log_files_in_group = 3 innodb_flush_method = O_DIRECT innodb_undo_directory=/mysql/3390/undolog innodb_undo_logs = 128 innodb_undo_tablespaces = 3
# BINARY LOGGING # log-bin = /mysql/3390/binlog/bin.log #binlog存放路径,需要根据实际情况修改 expire-logs-days = 7 sync-binlog = 1 binlog_format="ROW" log_bin_trust_function_creators = 1 binlog_cache_size = 2097152
# LOGGING # log-error = /mysql/3390/log/error.log #errorlog存放路径,需要根据实际情况修改 log-queries-not-using-indexes = 1 slow-query-log = 1 slow-query-log-file = /mysql/3390/log/slowquery.log #slowlog存放路径,需要根据实际情况修改 long_query_time = 2 min_examined_row_limit = 100
[mysqld-5.6] # metalock performance settings metadata_locks_hash_instances=64
[mysqld-5.7] # new innodb settings # loose_innodb_numa_interleave=1 innodb_buffer_pool_dump_pct = 40 innodb_page_cleaners = 6 innodb_undo_log_truncate = 2 innodb_max_undo_log_size = 2G innodb_purge_rseg_truncate_frequency = 128 |
3.4、初始化数据库
chown -R mysql:mysql /mysql/3390 chmod -R 755 /mysql/3390 mysql_install_db --defaults-file=/mysql/3390/my.cnf --datadir=/mysql/3390/data/ |
mysql是yum安装的,所以basedir=/usr就可以,它会自动在/usr下找mysql的安装目录。
3.5、启动mysql,要指定my.cnf文件启动
mysqld_safe --defaults-file=/mysql/3390/my.cnf & |
3.6、登陆3390端口的mysql数据库
cat /root/.mysql_secret # Password set for user 'root@localhost' at 2019-09-02 01:13:30 Dy.t9oAhC,af mysql -S /mysql/3390/mysql.sock -P 3390 -p mysql>ALTER USER USER() IDENTIFIED BY '12345678'; mysql>flush privileges; |
3.7、停止mysql,需要指定对应的sock文件。
mysqladmin -uroot -S /mysql/3390/mysql.sock shutdown -p |