mysql安装配置教程

1.mysql下载

  
  ①进入mysql官方网站:https://www.mysql.com/ 点击进入DOWNLOADS下载页面

  
  ②进入下载页面后,找到mysql社区版本MySQL Community (GPL) Downloads点击进入

  
  ③进入社区版页面后,进行如下点击

  
  ④进入后,点击mysql版本归档页面

  
  ⑤进入mysql版本归档页面后选择你所需要的mysql版本、操作系统及系统版本,然后点击download即可下载

  

  2.mysql安装规范

  
  MySQL安装方式:推荐使用二进制安装(其他安装方式:源码编译安装、yum、rpm)
  
  MySQL运行用户:mysql:mysql注意该用户是虚拟用户,只是用于mysql进程运行使用,不允许登录、不创建家目录
  
  MySQL目录规范:
  
  下载目录/server/tools
  
  系统目录/opt/mysql/mysql-xx.xx
  
  软连接ln-s/opt/mysql/mysql-xx.xx /usr/local/mysql
  
  数据目录/data/mysql/mysql+port/{data,logs}
  
  配置文件/data/mysql/mysql+port/my+port.cnf
  

  3.二进制安装MySQL5.7.26(该方式用于在linux系统下安装)

  
  Linux操作系统安装MySQL
  
  。创建MySQL虚拟用户
  
  useradd -s /sbin/nologin -M mysql #创建用户命令
  
  id mysql #查看是否创建成功

  
  。创建目录
  
  mkdir -p /server/tools
  
  mkdir -p /opt/mysql
  
  mkdir -p /data/mysql/mysql3306/{data,logs}
  
  cd /server/tools #进入到该目录

  
  。将下载的文件上传
  
  rz #上传mysql二进制文件
  
  ll #查看文件是否上传成功
  
  yum install -y lrzsz #如没有rz命令,可通过yum安装

  
  。解压二进制包
  
  tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

  
  。将软件部分移动到指定目录
  
  mv mysql-5.7.26-linux-glibc2.12-x86_64  /opt/mysql/mysql-5.7.26

  
  。创建软连接
  
  ln -s /opt/mysql/mysql-5.7.26/ /usr/local/mysql

  
  。删除mariadb(避免与MySQL冲突)
  
  rpm -e --nodeps mariadb-libs

  
  。配置文件整理(该配置参数只用于测试环境,不可在生产中使用。配置参数影响着MySQL数据库的性能及安全,慎重!!!)
  
  vim /data/mysql/mysql3306/my3306.cnf
  
[client]
port = 3306
socket = /data/mysql/mysql3306/mysql.sock #socket文件所在目录,本地登录不用再次输入

[mysqld]
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/
socket = /data/mysql/mysql.sock
pid-file = mysqldb.pid
character-set-server = utf8mb4
skip_name_resolve = 1
open_files_limit = 65535
back_log = 1024
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 768
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
slow_query_log = 1
slow_query_log_file = /data/mysql/slow.log
log-error = /data/mysql/error.log
long_query_time = 0.1
log_queries_not_using_indexes =1
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = 1
log_slow_slave_statements = 1
server-id = 3306
log-bin = /data/mysql/mybinlog
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G
expire_logs_days = 7
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = row
binlog_checksum = 1
relay_log_recovery = 1
relay-log-purge = 1
key_buffer_size = 32M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
lock_wait_timeout = 3600
explicit_defaults_for_timestamp = 1
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 30

transaction_isolation = REPEATABLE-READ
#innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 45875M
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_max_undo_log_size = 4G
innodb_undo_directory = undolog
innodb_undo_tablespaces = 95

# 根据您的服务器IOPS能力适当调整
# 一般配普通SSD盘的话,可以调整到 10000 - 20000
# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_neighbors = 0
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1
innodb_online_alter_log_max_size = 4G
internal_tmp_disk_storage_engine = InnoDB
innodb_stats_on_metadata = 0

# some var for MySQL 8
log_error_verbosity = 3
innodb_print_ddl_logs = 1
binlog_expire_logs_seconds = 86400
#innodb_dedicated_server = 0

innodb_status_file = 1
# 注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快
innodb_status_output = 0
innodb_status_output_locks = 0

#performance_schema
performance_schema = 1
performance_schema_instrument = '%=on'

#innodb monitor
innodb_monitor_enable="module_innodb"
innodb_monitor_enable="module_server"
innodb_monitor_enable="module_dml"
innodb_monitor_enable="module_ddl"
innodb_monitor_enable="module_trx"
innodb_monitor_enable="module_os"
innodb_monitor_enable="module_purge"
innodb_monitor_enable="module_log"
innodb_monitor_enable="module_lock"
innodb_monitor_enable="module_buffer"
innodb_monitor_enable="module_index"
innodb_monitor_enable="module_ibuf_system"
innodb_monitor_enable="module_buffer_page"
innodb_monitor_enable="module_adaptive_hash"

[mysqldump]
max_allowed_packet = 32M

## my.cnf for MySQL 5.7/8.0
## 注意:个别建议可能需要根据实际情况作调整,请自行判断或联系我
## 本配置文件主要适用于MySQL 5.7/8.0版本
  
  。安装MySQL依赖包
  
  yum install libaio-devel -y

  
  yum install numactl -y

  
  。更改MySQL相关目录的用户组
  
  chown -R mysql:mysql /data/*

  
  。初始化数据库
  
  /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql  --datadir=/data/mysql/mysql3306/data
  
  (MySQL8.0 、MySQL5.7都是通过mysqld进行初始化数据)
  
  --initialize-insecure :表示不给默认root用户创建密码,可以空密码登陆

  
  。加入环境变量
  
  vim /etc/profile #vim编辑
  
   PATH="/usr/local/mysql/bin:$PATH"
  
  source /etc/profile #执行脚本文件,使得环境变量生效

  
  。启动MySQL
  
  mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
  
  。查看是否启动成功
  
  netstat -lntup |grep mysql #如有指定的mysql进程,就表示mysql启动成功

  
  。连接mysql
  
  #初始化时没有给root用户指定密码,所以可以空密码连接
  
  mysql -uroot -p -S /data/mysql/mysql3306/mysql.sock
  

  4.二进制安装MySQL8.0.20(该方式用于在linux系统下安装)

  
  。创建MySQL虚拟用户
  
  useradd -s /sbin/nologin -M mysql
  
  。创建目录
  
  mkdir -p /server/tools
  
  mkdir -p /opt/mysql
  
  mkdir -p /data/mysql/mysql3306/{data,logs}
  
  cd /server/tools
  
  #课堂小知识:
  
  快速备份:cp a.txt{,.bak}
  
  删除文件:通过mv代替rm,将文件移动到/tmp目录下,等确认该文件后期不再使用,可以进入/tmp目录通过rm进行删除
  
  。上传二进制包
  
  rz
  
  yum install -y lrzsz
  
  。解压二进制包
  
  tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
  
  。将软件部分移动到指定目录
  
  mv mysql-8.0.20-linux-glibc2.12-x86_64  /opt/mysql/mysql-8.0.20
  
  。创建软连接
  
  ln -s /opt/mysql/mysql-8.0.20/ /usr/local/mysql
  
  。删除mariadb
  
  rpm -e --nodeps mariadb-libs
  
  。配置文件整理
  
  vim /data/mysql/mysql3306/my3306.cnf
  
[client]
port = 3306
socket = /data/mysql/mysql3306/mysql.sock #socket文件所在目录,本地登录不用再次输入

[mysqld]
user = mysql
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/
socket = /data/mysql/mysql.sock
pid-file = mysqldb.pid
character-set-server = utf8mb4
skip_name_resolve = 1
open_files_limit = 65535
back_log = 1024
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 768
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
slow_query_log = 1
slow_query_log_file = /data/mysql/slow.log
log-error = /data/mysql/error.log
long_query_time = 0.1
log_queries_not_using_indexes =1
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = 1
log_slow_slave_statements = 1
server-id = 3306
log-bin = /data/mysql/mybinlog
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G
expire_logs_days = 7
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
binlog_format = row
binlog_checksum = 1
relay_log_recovery = 1
relay-log-purge = 1
key_buffer_size = 32M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
lock_wait_timeout = 3600
explicit_defaults_for_timestamp = 1
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 30

transaction_isolation = REPEATABLE-READ
#innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 45875M
innodb_buffer_pool_instances = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_max_undo_log_size = 4G
innodb_undo_directory = undolog
innodb_undo_tablespaces = 95

# 根据您的服务器IOPS能力适当调整
# 一般配普通SSD盘的话,可以调整到 10000 - 20000
# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_neighbors = 0
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1
innodb_online_alter_log_max_size = 4G
internal_tmp_disk_storage_engine = InnoDB
innodb_stats_on_metadata = 0

# some var for MySQL 8
log_error_verbosity = 3
innodb_print_ddl_logs = 1
binlog_expire_logs_seconds = 86400
#innodb_dedicated_server = 0

innodb_status_file = 1
# 注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log_error文件增长较快
innodb_status_output = 0
innodb_status_output_locks = 0

#performance_schema
performance_schema = 1
performance_schema_instrument = '%=on'

#innodb monitor
innodb_monitor_enable="module_innodb"
innodb_monitor_enable="module_server"
innodb_monitor_enable="module_dml"
innodb_monitor_enable="module_ddl"
innodb_monitor_enable="module_trx"
innodb_monitor_enable="module_os"
innodb_monitor_enable="module_purge"
innodb_monitor_enable="module_log"
innodb_monitor_enable="module_lock"
innodb_monitor_enable="module_buffer"
innodb_monitor_enable="module_index"
innodb_monitor_enable="module_ibuf_system"
innodb_monitor_enable="module_buffer_page"
innodb_monitor_enable="module_adaptive_hash"

[mysqldump]
max_allowed_packet = 32M

## my.cnf for MySQL 5.7/8.0
## 注意:个别建议可能需要根据实际情况作调整,请自行判断或联系我
## 本配置文件主要适用于MySQL 5.7/8.0版本
  
  。安装MySQL依赖包
  
  yum install libaio-devel -y
  
  yum install numactl -y
  
  。更改MySQL相关目录的用户组
  
  chown -R mysql:mysql /data/*
  
  。初始化数据库
  
  /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize-insecure --user=mysql --basedir=/usr/local/mysql  --datadir=/data/mysql/mysql3306/data
  
  。加入环境变量
  
  vim /etc/profile
  
  PATH="/usr/local/mysql/bin:$PATH"
  
  source /etc/profile
  
  。启动MySQL
  
  mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
  
  。查看是否启动成功
  
  netstat -lntup |grep mysql

 

posted @ 2021-05-26 22:32  DB哥  阅读(303)  评论(0编辑  收藏  举报