In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-02-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >
Share
Shulou(Shulou.com)06/01 Report--
1. Environment. This article only introduces the configuration of mxc. Other configurations (all configurations) I will download and connect to https://down.51cto.com/data/2467920.
192.168.56.21 ansible192.168.56.20 es1192.168.56.19 es2192.168.56.18 es3
2. Directory overview, including mxc, master-slave and single-node installation
[root@mgr ~] # tree mariadbmariadb ├── common │ ├── config_master_slaves.yaml │ ├── config_mxc.yaml │ ├── │ create_user_and_config_file.yaml │ ├── initialize_mysql_datadir.yaml │ ├── install_mysql_dependents.yaml │ ├── install_mysql.yaml │ ├── make_mysql_ Security.yaml ├── install_mariadb_galera_cluster.yaml ├── install_master_slaves.yaml ├── install_single_mysql.yaml ├── softwares │ └── mariadb-10.2.24-linux-x86_64.tar.gz ├── template │ ├── confmxc.cnf │ ├── master_slaves.sql │ ├── my.cnf │ ├── mysql.conf │ ├── mysql.service │ ├── secure .sql │ ├── startmxc.sh ├── uninstall.yaml └── vars ├── config.yaml ├── mariadb_galera_cluster.yaml └── master_slaves.yaml
3 、 install_mariadb_galera_cluster.yaml
[root@mgr mariadb] # cat install_mariadb_galera_cluster.yaml-hosts: es remote_user: root become_user: root vars_files: -. / vars/config.yaml -. / vars/mariadb_galera_cluster.yaml tasks:-name: create user and config file import_tasks: common/create_user_and_config_file.yaml-name: install mysql dependents import_tasks: common/install_mysql _ dependents.yaml-name: install mysql to / usr/local/mysql import_tasks: common/install_mysql.yaml-name: init mysql datadir import_tasks: common/initialize_mysql_datadir.yaml-name: config mysql service and start mysql import_tasks: common/config_mysql_service_and_start_mysql.yaml-name: sleep 15s shell: sleep 15-name: make mysql secure import_tasks: common/make_mysql _ security.yaml-name: config mysql group replication import_tasks: common/config_ mxc.yaml. [root @ mgr mariadb] #
4 、 config.yaml
[root@mgr mariadb] # cat vars/config.yaml-# directory where the mysql installation package is located mariadb_packages_dir: / root/mariadb/softwares/mariadb_package_name: mariadb-10.2.24-linux-x86_64.tar.gz#linux system-level mysql user related information mysql_user: mysqlmysql_group: mysqlmysql_user_uid: 3306mysql_user_gid: 3306#mysql installation directory mysql_base_dir: / usr/local/mysql/#mysql true The positive datadir will be mysql_data_dir_base+mysql_portmysql_data_dir_base: / database/mysql/data/mysql_port: 3306mysql_root_password: mariadb0352mysql_rple_user: replmysql_rple_password: repl0352mysql_wsrep_sst_user: sstusermysql_wsrep_sst_password: sstuser1234#mysql configuration file template mysql_binlog_format: rowmysql_innodb_log_files_in_group: 16mysql_innodb_log_file_size: 256Mmysql_innodb_log_buffer_size: 64Mmysql_innodb_open _ files: 65535mysql_max_connections: 1000mysql_thread_cache_size: 256mysql_sync_binlog: 1mysql_binlog_cache_size: 64Kmysql_innodb_online_alter_log_max_size: 128Mmysql_performance_schema: 'on'with_php: 1with_mariadb_galera_cluster: 0 [root@mgr mariadb] #
5 、 mariadb_galera_cluster.yaml
[root@mgr mariadb] # cat vars/mariadb_galera_cluster.yaml with_mariadb_galera_cluster: 1mxc_port: 4567mxc_hosts:-'192.168.56.18' -' 192.168.56.19'-'192.168.56.20' [root@mgr mariadb] #
6 、 create_user_and_config_file.yaml
[root@mgr mariadb] # cat common/create_user_and_config_file.yaml----name: create mysql user user: name: mysql state: present uid: "{mysql_user_uid}}"-name: config / etc/my.cnf template: src:.. / template/my.cnf dest: / etc/my.cnf owner: mysql group: mysql backup: yes [root@mgr mariadb] #
7 、 install_mysql_dependents.yaml
[root@mgr mariadb] # cat common/install_mysql_dependents.yaml----name: install libaio-devel yum: libaio-devel state: present-name: install numactl-devel yum: name: numactl-devel state: present-name: install perl-Data-Dumper yum: name: perl-Data-Dumper state: present-name: install lsof yum: name: lsof state: present-name: install rsync yum: name: rsync State: present-name: install socat yum: name: socat state: present-name: install perl-DBD-MySQL yum: name: perl-DBD-MySQL state: present-name: perl-Time-HiRes yum: name: perl-Time-HiRes state: present [root@mgr mariadb] #
8 、 install_mysql.yaml
[root@mgr mariadb] # cat common/install_mysql.yaml---# transfers the mysql installation package locally to the target host, And extract the installation package to the / usr/local/ directory # equivalent bash#scp mysql-xxxx.tar.gz 192.168.xx.xx:/tmp/#tar-xvf / tmp/mysq-xxxx.tar.gz-C / usr/local/-name: transfer mysql install package to remote host and unarchive to / usr/local/ unarchive: src: "{{mariadb_packages_dir}} / {{mariadb_package_name}}" dest: / usr/local/ Owner: mysql group: mysql# set permissions # equivalent bash#chown-R mysql:mysql / usr/local/mysql-xxxx-name: change owner to mysql user when: mariadb_package_name.find ('tar.gz')! =-1 file: path: / usr/local/ {{mariadb_package_name | regex_replace (' .tar.gz') Owner: mysql group: mysql recurse: yes#chown-R mysql:mysql / usr/local/mysql-xxxx-name: change owner to mysql user when: mariadb_package_name.find ('tar.xz')! =-1 file: path: / usr/local/ {{mariadb_package_name | regex_replace (' .tar.xz') '')} owner: mysql group: mysql recurse: yes# create connection file # equivalent bash#ln-s / usr/local/mysql-xxxx / usr/local/mysql- name: make link / usr/local/mysql-xx.yy.zz to / usr/local/mysql when: mariadb_package_name.find ('tar.gz')! =-1 file: src: / usr/local/ {{mariadb_package_name | regex_replace (' .tar.gz') '')} dest: / usr/local/mysql state: link owner: mysql group: mysql- name: make link / usr/local/mysql-xx.yy.zz to / usr/local/mysql when: mariadb_package_name.find ('tar.xz')! =-1 file: src: / usr/local/ {{mariadb_package_name | regex_replace (' .tar.xz' '')} dest: / usr/local/mysql state: link owner: mysql group: mysql# exports the library file of mysql-name: export mysql share object (* .os) template: src:.. / template/mysql.conf dest: / etc/ld.so.conf.d/mysql.conf# load shared library-name: load share object shell: ldconfig# export PATH environment variable-name: export path env variable lineinfile: Path: / etc/profile line: export PATH=/usr/local/mysql/bin/:$PATH insertafter: EOF-name: export path env to / root/.bashrc lineinfile: path: / root/.bashrc line: export PATH=/usr/local/mysql/bin/:$PATH insertafter: EOF-name: remove / usr/include/mysql file: dest: / usr/include/mysql state: absent# Export header file-name: export include file to / usr/ Include/mysql file: src: / usr/local/mysql/include dest: / usr/include/mysql state: link-name: create libmysqlclient_r.so file for php-5.6 when: with_php = = 1 file: src: "{{mysql_base_dir + 'lib/libmysqlclient.so'}}" dest: "{{mysql_base_dir +' lib/libmysqlclient_r.so'}}" state: link owner: mysql group: mysql [root@mgr mariadb] #
9 、 initialize_mysql_datadir.yaml
[root@mgr mariadb] # cat common/initialize_mysql_datadir.yaml----name: create datadir file: path: "{{mysql_data_dir_base}} / {mysql_port}}" state: directory owner: mysql group: mysql-name: initialize-insecure shell: / usr/local/mysql/scripts/mysql_install_db-- user= {{mysql_user}}-datadir= {{mysql_data_dir_base}} / {{ Mysql_port}-- basedir= {{mysql_base_dir}} [root@mgr mariadb] #
10 、 config_mysql_service_and_start_mysql.yaml
[root@mgr mariadb] # cat common/config_mysql_service_and_start_mysql.yaml-name: create systemd config file when: ansible_distribution_major_version = = "7" template: src:.. / template/mysql.service dest: / usr/lib/systemd/system/mysql.service-name: start mysql (sytemctl) when: ansible_distribution_major_version = = "7" systemd: name: mysql state: started daemon _ reload: yes-name: config mysql.service start up on boot when: ansible_distribution_major_version = = "7" systemd: name: mysql enabled: yes daemon_reload: yes-name: config sysv start script when: ansible_distribution_major_version = = "6" copy: remote_src: yes src: "{mysql_base_dir + 'support-files/mysql.server'}}" dest: / etc/init. D/mysqld mode: 0755-name: start mysql (service) when: ansible_distribution_major_version = = "6" service: name: mysqld state: started-name: config mysql.service start up on boot when: ansible_distribution_major_version = = "6" shell: chkconfig mysqld on [root@mgr mariadb] # [root@mgr mariadb] #
11 、 make_mysql_security.yaml
[root@mgr mariadb] # cat common/make_mysql_security.yaml-name: transfer sql statement to remonte template: src:.. / template/secure.sql dest: / tmp/make_mysql_secure.sql-name: make mysql secure shell: mysql-hlocalhost-uroot-S / tmp/mysql.sock
< /tmp/make_mysql_secure.sql - name: remove temp file /tmp/make_mysql_secure.sql file: dest: /tmp/make_mysql_secure.sql state: absent[root@mgr mariadb]# 12、config_mxc.yaml [root@mgr mariadb]# cat common/config_mxc.yaml - name: transfer config mxc to remonte template: src: ../template/confmxc.cnf dest: /tmp/confmxc.cnf - name: transfer shell startmxc to remonte template: src: ../template/startmxc.sh dest: /tmp/startmxc.sh mode: '0777' - name: config mariadb galera cluster shell: /tmp/startmxc.sh - name: remove temp file /tmp/startmxc.sh file: dest: /tmp/startmxc.sh state: absent[root@mgr mariadb]# 13、my.cnf [root@mgr mariadb]# cat template/my.cnf [mysql]auto-rehashsocket =/tmp/mysql.sock # /tmp/mysql.sock[mysqld]####: for globaluser =mysql # mysqlbasedir ={{ mysql_base_dir }} # /usr/local/mysql/datadir ={{ mysql_data_dir_base }}{{mysql_port}} # /usr/local/mysql/dataserver_id ={{ 1024 |random(1) }} # 0port ={{ mysql_port }} # 3306character_set_server =utf8 # latin1log_bin_trust_function_creators =on # 0max_prepared_stmt_count =1048576#log_timestamps =system # utcsocket =/tmp/mysql.sock # /tmp/mysql.sockread_only =0 # offskip_name_resolve =1 # 0auto_increment_increment =1 # 1auto_increment_offset =1 # 1lower_case_table_names =1 # 0secure_file_priv = # nullopen_files_limit =65536 # 1024max_connections ={{mysql_max_connections | default(1000)}}thread_cache_size ={{ [ansible_processor_count * 8,256] | max}} # 9table_open_cache =4096 # 2000table_definition_cache =2000 # 1400table_open_cache_instances =32 # 16####: for binlogbinlog_format ={{mysql_binlog_format}} # rowlog_bin =mysql-bin # off#binlog_rows_query_log_events =on # offlog_slave_updates =on # offexpire_logs_days =7 # 0{# set binlog cache size #}{% if mysql_binlog_format == 'mixed' %}binlog_cache_size =32768 # 32768(32k){% else %}binlog_cache_size =65536 # 65536(64k){% endif %}{# set binlog cache size #}binlog_checksum =none # CRC32sync_binlog =1 # 1#slave-preserve-commit-order =ON # ####: for error-loglog_error =err.log # /usr/local/mysql/data/localhost.localdomain.err{# set general log #}general_log =off # offgeneral_log_file =general.log # hostname.log{# set general log #}####: for slow query logslow_query_log =on # offslow_query_log_file =slow.log # hostname.loglog_queries_not_using_indexes =on # offlong_query_time =10.000000 # 10.000000####: for gtid#gtid_executed_compression_period =1000 # 1000#gtid_mode =on # off#enforce_gtid_consistency =on # off####: for replicationskip_slave_start =0 # # 0rpl_semi_sync_master_enabled =1 # 0rpl_semi_sync_slave_enabled =1 # 0rpl_semi_sync_master_timeout =1000 # 1000(1 second)plugin_load_add =semisync_master.so #plugin_load_add =semisync_slave.so ##binlog_group_commit_sync_delay =500 # 0 500(0.05% seconde) #binlog_group_commit_sync_no_delay_count = 13 # 0####: for innodbdefault_storage_engine =innodb # innodbdefault_tmp_storage_engine =innodb # innodbinnodb_data_file_path =ibdata1:64M:autoextend # ibdata1:12M:autoextendinnodb_temp_data_file_path =ibtmp1:12M:autoextend # ibtmp1:12M:autoextendinnodb_buffer_pool_filename =ib_buffer_pool # ib_buffer_poolinnodb_log_group_home_dir =./ # ./innodb_log_files_in_group ={{ mysql_innodb_log_files_in_group }} # 2innodb_log_file_size ={{ mysql_innodb_log_file_size }} # 50331648(48M)innodb_file_per_table =on # oninnodb_online_alter_log_max_size =128M # 134217728(128M)innodb_open_files ={{mysql_innodb_open_files}} # 2000innodb_page_size =16k # 16384(16k)innodb_thread_concurrency =0 # 0innodb_read_io_threads =4 # 4innodb_write_io_threads =4 # 4innodb_purge_threads =4 # 4(garbage collection)innodb_page_cleaners =4 # 4(flush lru list)innodb_print_all_deadlocks =on # offinnodb_deadlock_detect =on # oninnodb_lock_wait_timeout =50 # 50innodb_spin_wait_delay =6 # 6innodb_autoinc_lock_mode =2 # 1innodb_io_capacity =200 # 200innodb_io_capacity_max =2000 # 2000#--------Persistent Optimizer Statisticsinnodb_stats_auto_recalc =on # oninnodb_stats_persistent =on # oninnodb_stats_persistent_sample_pages =20 # 20{# -- set innodb_buffer_pool_instances -- #}{% if ((ansible_memtotal_mb * 0.6 // 1024) | int ) < 64 %}innodb_buffer_pool_instances ={{ [ ((ansible_memtotal_mb * 0.6 // 1024) | int ) , 1 ] | max }}{% else %}innodb_buffer_pool_instances =64{% endif %}{# -- set innodb_buffer_pool_instances -- #}innodb_adaptive_hash_index =on # oninnodb_change_buffering =all # allinnodb_change_buffer_max_size =25 # 25innodb_flush_neighbors =1 # 1#innodb_flush_method = #innodb_doublewrite =on # oninnodb_log_buffer_size ={{mysql_innodb_log_buffer_size}} # 16777216(16M)innodb_flush_log_at_timeout =1 # 1innodb_flush_log_at_trx_commit =1 # 1innodb_buffer_pool_size ={{ (ansible_memtotal_mb * 0.6 // 128 ) | int * 128 }}M # 134217728(128M)autocommit =1 # 1#--------innodb scan resistantinnodb_old_blocks_pct =37 # 37innodb_old_blocks_time =1000 # 1000#--------innodb read aheadinnodb_read_ahead_threshold =56 # 56 (0..64)innodb_random_read_ahead =OFF # OFF#--------innodb buffer pool stateinnodb_buffer_pool_dump_pct =25 # 25 innodb_buffer_pool_dump_at_shutdown =ON # ONinnodb_buffer_pool_load_at_startup =ON # ON[root@mgr mariadb]# 14、mysql.conf [root@mgr mariadb]# cat template/mysql.conf {{mysql_base_dir + 'lib/'}}[root@mgr mariadb]# [root@mgr mariadb]# 15、secure.sql [root@mgr mariadb]# cat template/secure.sql set sql_log_bin=0; update mysql.user set password=password('{{ mysql_root_password }}') where user='root'; delete from mysql.user where user='';{% if with_mariadb_galera_cluster == 1 %}grant all on *.* to {{mysql_wsrep_sst_user}} identified by '{{mysql_wsrep_sst_password}}';{% endif %} flush privileges;set sql_log_bin=1;[root@mgr mariadb]# 16、mysql.service [root@mgr mariadb]# cat template/mysql.service [Unit]Description=MySQL ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnfLimitNOFILE = 65536Environment=MYSQLD_PARENT_PID=1#Restart=on-failure#RestartPreventExitStatus=1#PrivateTmp=false[root@mgr mariadb]# 17、confmxc.cnf [root@mgr mariadb]# cat template/confmxc.cnf {% if with_mariadb_galera_cluster == 1 %}wsrep_on=onwsrep_provider=/usr/local/mysql/lib/galera/libgalera_smm.sowsrep_cluster_name=g_mariadb#wsrep_cluster_address="gcomm://192.168.56.20,192.168.56.19,192.168.56.18"wsrep_slave_threads=5wsrep_sst_method=mariabackupwsrep_sst_auth={{mysql_wsrep_sst_user}}:{{mysql_wsrep_sst_password}}{% set gs = ':' + (mxc_port | string)+',' %}wsrep_cluster_address ="gcomm://{{ mxc_hosts | join(gs) + ':' + (mxc_port | string) }}"{% endif %}[root@mgr mariadb]#wsrep_cluster_address ="gcomm://{{ mxc_hosts |join(',')}}" 18、startmxc.sh [root@mgr mariadb]# cat template/startmxc.sh#!/bin/bash{% if ansible_distribution_major_version == "7" %}systemctl stop mysql{% else %}/etc/init.d/mysqld stop{% endif %}cat /tmp/confmxc.cnf >> / etc/my.cnfsleep 10 {if mxc_hosts [0] in ansible_all_ipv4_addresses%} mysqld_safe-- wsrep_new_cluster & sleep 10 {% else%} sleep 90 {% if ansible_distribution_major_version = = "7"%} systemctl start mysql {% else%} / etc/init.d/mysqld start {% endif%} {% endif%} [root@mgr mariadb] #
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.