标签:compose log -- sql db innodb mysql size
1、应用场景:
使用docker-compose 部署后台系统、nacos、seata 时,由于他们都各有自己的一个数据库,且在容器启动的时候要保证这三个数据库都创建完成,否则后台系统起不来,或者nacos 报错找不到数据库,seata 一样
2、构建数据:
执行docker-compose up -d
1)目录结构:
2)test1_db.sql
-- ---------------------------- -- 创建数据库 -- ---------------------------- drop database IF EXISTS test1_db; CREATE DATABASE test1_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; use test1_db SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for test_table -- ---------------------------- DROP TABLE IF EXISTS `test_table`; CREATE TABLE `test_table` ( `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; SET FOREIGN_KEY_CHECKS = 1;
3) test2_db.sql
-- ---------------------------- -- 创建数据库 -- ---------------------------- drop database IF EXISTS test2_db; CREATE DATABASE test2_db DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; use test2_db SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for test2_table -- ---------------------------- DROP TABLE IF EXISTS `test2_table`; CREATE TABLE `test2_table` ( `id` int(11) NOT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; SET FOREIGN_KEY_CHECKS = 1;
4) init.sql
-- ---------------------------- -- 执行顺序 -- ---------------------------- source /opt/db/test1_db.sql; source /opt/db/test2_db.sql
5) mysqld.cnf
[client] port=3306 socket = /var/run/mysqld/mysqld.sock [mysql] no-auto-rehash auto-rehash default-character-set=utf8mb4 [mysqld] ###basic settings server-id = 2 pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql #log-error = /var/lib/mysql/error.log # By default we only accept connections from localhost #bind-address = 127.0.0.1 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 character-set-server = utf8mb4 sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" default-storage-engine=INNODB transaction_isolation = READ-COMMITTED auto_increment_offset = 1 connect_timeout = 20 max_connections = 3500 wait_timeout=86400 interactive_timeout=86400 interactive_timeout = 7200 log_bin_trust_function_creators = 1 wait_timeout = 7200 sort_buffer_size = 32M join_buffer_size = 128M max_allowed_packet = 1024M tmp_table_size = 2097152 explicit_defaults_for_timestamp = 1 read_buffer_size = 16M read_rnd_buffer_size = 32M query_cache_type = 1 query_cache_size = 2M table_open_cache = 1500 table_definition_cache = 1000 thread_cache_size = 768 back_log = 3000 open_files_limit = 65536 skip-name-resolve ########log settings######## log-output=FILE general_log = ON general_log_file=/var/lib/mysql/general.log slow_query_log = ON slow_query_log_file=/var/lib/mysql/slowquery.log long_query_time=10 #log-error=/var/lib/mysql/error.log log_queries_not_using_indexes = OFF log_throttle_queries_not_using_indexes = 0 #expire_logs_days = 120 min_examined_row_limit = 100 ########innodb settings######## innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_buffer_pool_size = 6144M innodb_file_per_table = on innodb_buffer_pool_instances = 20 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_log_file_size = 300M innodb_log_files_in_group = 2 innodb_log_buffer_size = 16M innodb_undo_logs = 128 #innodb_undo_tablespaces = 3 #innodb_undo_log_truncate = 1 #innodb_max_undo_log_size = 2G innodb_flush_method = O_DIRECT innodb_flush_neighbors = 1 innodb_purge_threads = 4 innodb_large_prefix = 1 innodb_thread_concurrency = 64 innodb_print_all_deadlocks = 1 innodb_strict_mode = 1 innodb_sort_buffer_size = 64M innodb_flush_log_at_trx_commit=1 innodb_autoextend_increment=64 innodb_concurrency_tickets=5000 innodb_old_blocks_time=1000 innodb_open_files=65536 innodb_stats_on_metadata=0 innodb_file_per_table=1 innodb_checksum_algorithm=0 #innodb_data_file_path=ibdata1:60M;ibdata2:60M;autoextend:max:1G innodb_data_file_path = ibdata1:12M:autoextend #innodb_temp_data_file_path = ibtmp1:500M:autoextend:max:20G #innodb_buffer_pool_dump_pct = 40 #innodb_page_cleaners = 4 #innodb_purge_rseg_truncate_frequency = 128 binlog_gtid_simple_recovery=1 #log_timestamps=system ############## delayed_insert_limit = 100 delayed_insert_timeout = 300 delayed_queue_size = 1000 delay_key_write = ON disconnect_on_expired_password = ON div_precision_increment = 4 end_markers_in_json = OFF eq_range_index_dive_limit = 10 innodb_adaptive_flushing = ON innodb_adaptive_hash_index = ON innodb_adaptive_max_sleep_delay = 150000 #innodb_additional_mem_pool_size = 2097152 innodb_autoextend_increment = 64 innodb_autoinc_lock_mode = 1
6) dockerfile
# 基础镜像 FROM mysql:5.7 # author MAINTAINER j ADD mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
7) docker-compose.yml
version : '3.8' services: mysql: container_name: mysql image: mysql:5.7 build: context: ./mysql ports: - "3306:3306" volumes: - ./mysql/db:/opt/db - ./mysql/init:/docker-entrypoint-initdb.d/ command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: 123123 restart: always
3、执行docker-compose up -d
4、连接数据库
标签:compose,log,--,sql,db,innodb,mysql,size 来源: https://www.cnblogs.com/dayu33/p/16364090.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。