[关闭]
@cdmonkey 2017-03-28T08:11:24.000000Z 字数 3919 阅读 979

MySQL-5.7.17-安装教程

数据库


https://my.oschina.net/kcw/blog/812802
http://blog.csdn.net/u012453679/article/details/60480682

二进制安装

解压二进制安装包

  1. [root@PBSZBXPROXYDB tools]# tar zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /opt/
  2. [root@PBSZBXPROXYDB tools]# ln -s /opt/mysql-5.7.17-linux-glibc2.5-x86_64/ /usr/local/mysql
  3. # Config PATH
  4. [root@PBSZBXPROXYDB ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
  5. [root@PBSZBXPROXYDB ~]# source ~/.bash_profile

创建用户:

  1. [root@PBSZBXPROXYDB ~]# groupadd mysql
  2. [root@PBSZBXPROXYDB ~]# useradd -r -g mysql -s /bin/false mysql

安装依赖包:

  1. yum -y install libaio libaio-devel

复制启动脚本。

注意:我们不使用这个安装包里自带的服务脚本,而是使用下面提供的脚本,因而该步骤可不执行。

  1. [root@PBSZBXPROXYDB ~]# cd /opt/mysql/
  2. [root@PBSZBXPROXYDB mysql]# cp support-files/mysql.server /etc/init.d/mysqld
  3. [root@PBSZBXPROXYDB mysql]# chmod +x /etc/init.d/mysqld

创建数据目录并进行授权。

  1. [root@PBSZBXPROXYDB ~]# mkdir -p /data/mysql/mysql3306/{data,logs,tmp}
  2. [root@PBSZBXPROXYDB ~]# chown -R mysql:mysql /usr/local/mysql/
  3. [root@PBSZBXPROXYDB ~]# chown -R mysql:mysql /data/mysql/mysql3306/

上传配置文件,该配置文件是事先准备好的(请注意配置文件的位置):

  1. [root@PBSZBXPROXYDB ~]# vim /data/mysql/mysql3306/mysql3306.cnf
  2. [client]
  3. port = 3306
  4. socket = /tmp/mysql.sock
  5. [mysql]
  6. prompt='(product)\u@\h [\d]>'
  7. no-auto-rehash
  8. [mysqld]
  9. # Misc
  10. user = mysql
  11. basedir = /opt/mysql
  12. datadir = /data/mysql/mysql3306/data
  13. port = 3306
  14. socket = /tmp/mysql.sock
  15. event_scheduler = 0
  16. # Tmp
  17. tmpdir=/data/mysql/mysql3306/tmp
  18. lower_case_table_names = 1
  19. # Timeout
  20. interactive_timeout = 300
  21. wait_timeout = 300
  22. # Character Set
  23. character-set-server = utf8
  24. open_files_limit = 65535
  25. max_connections = 2048
  26. max_connect_errors = 100000
  27. skip-name-resolve = 1
  28. # Logs
  29. log-output=file
  30. slow_query_log = 1
  31. slow_query_log_file = slow.log
  32. log-error = error.log
  33. pid-file = mysql.pid
  34. long_query_time = 1
  35. #log-slow-admin-statements = 1
  36. log-queries-not-using-indexes = 1
  37. log-slow-slave-statements = 1
  38. #explicit_defaults_for_timestamp=1
  39. # Binlog
  40. binlog_format = row
  41. server-id = 2493306
  42. log-bin = /data/mysql/mysql3306/logs/mysql-bin
  43. binlog_cache_size = 4M
  44. max_binlog_size = 1G
  45. max_binlog_cache_size = 2G
  46. sync_binlog = 1
  47. innodb_flush_log_at_trx_commit = 1
  48. expire_logs_days = 10
  49. binlog_checksum = NONE # for GR
  50. # Relay log
  51. relay-log = /data/mysql/mysql3306/logs/relay-bin
  52. skip_slave_start = 1
  53. max_relay_log_size = 1G
  54. relay_log_purge = 0
  55. relay_log_recovery = 1
  56. log_slave_updates = 1
  57. #slave-skip-errors=1032,1053,1062
  58. # Replication
  59. gtid_mode = ON
  60. enforce_gtid_consistency = ON
  61. #new feture
  62. slave_parallel_type = LOGICAL_CLOCK
  63. slave_parallel_workers = 2
  64. relay_log_recovery = ON
  65. master_info_repository = TABLE
  66. relay_log_info_repository = TABLE
  67. # Buffers & cache
  68. table_open_cache = 2048
  69. table_definition_cache = 2048
  70. table_open_cache = 2048
  71. max_heap_table_size = 96M
  72. sort_buffer_size = 2M
  73. join_buffer_size = 2M
  74. thread_cache_size = 256
  75. query_cache_size = 0
  76. query_cache_type = 0
  77. query_cache_limit = 256K
  78. query_cache_min_res_unit = 512
  79. thread_stack = 192K
  80. tmp_table_size = 96M
  81. key_buffer_size = 8M
  82. read_buffer_size = 2M
  83. read_rnd_buffer_size = 16M
  84. bulk_insert_buffer_size = 32M
  85. # Myisam
  86. myisam_sort_buffer_size = 128M
  87. myisam_max_sort_file_size = 10G
  88. myisam_repair_threads = 1
  89. # Innodb
  90. innodb_buffer_pool_size = 3G
  91. innodb_buffer_pool_instances = 4
  92. innodb_data_file_path = ibdata1:1G:autoextend
  93. innodb_flush_log_at_trx_commit = 1
  94. innodb_log_buffer_size = 64M
  95. innodb_log_file_size = 500M
  96. innodb_log_files_in_group = 3
  97. innodb_max_dirty_pages_pct = 50
  98. innodb_file_per_table = 1
  99. innodb_rollback_on_timeout
  100. innodb_status_file = 1
  101. innodb_io_capacity = 2000
  102. transaction_isolation = READ-COMMITTED
  103. innodb_flush_method = O_DIRECT
  104. [mysqld_safe]
  105. nice=-19
  106. open-files-limit=65535

数据库初始化:

  1. /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/mysql3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data

注意:使用--initialize-insecure参数的目的是不初始化root用户密码,因而不会生成一个随机密码。

创建启停止脚本:

  1. [root@PBSZBXPROXYDB ~]# vim /data/mysql/mysql3306/start.sh
  2. /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/mysql3306.cnf &
  3. [root@PBSZBXPROXYDB ~]# vim /data/mysql/mysql3306/stop.sh
  4. /usr/local/mysql/bin/mysqladmin -uroot -psuixingpay123 shutdown

注意:上面的root用户的密码要依据实际情况进行修改。

启动数据库:

  1. [root@PBSZBXPROXYDB ~]# sh /data/mysql/mysql3306/start.sh

服务启动后就能够直接登录了(因为未初始化root的密码,因而无需输入密码,直接登录):

  1. [root@PBSZBXPROXYDB ~]# mysql -uroot
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注