mysql5.7安裝教程詳解


大家好,這篇文字主要以mysql5.7安裝為例,幫助大家解決安裝與配置mysql的步驟。

1.mysql下載

①進入mysql官方網站:https://www.mysql.com/ 點擊進入DOWNLOADS下載頁面

adc23260cab5e5d4d247651cd9faf7fe.jpeg

②進入下載頁面后,找到mysql社區版本MySQL Community (GPL) Downloads點擊進入

7806541c18bf7a5c70e963c482ef7298.jpeg

③進入社區版頁面后,進行如下點擊

4b78982c6b4599c50b328c9434a8b7b2.jpeg

④進入后,點擊mysql版本歸檔頁面

18e94e37f77840eec1460dd8ac260dd8.jpeg

⑤進入mysql版本歸檔頁面后選擇你所需要的mysql版本、操作系統及系統版本,然后點擊download即可下載

5f5c13082a689491fb989f6037dca606.jpeg


2.二進制安裝MySQL5.7.26(該方式使用於在linux系統下安裝MySQL5.7和MySQL8.0的各個小版本)


  。創建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
  
  [mysqld]
  
  user=mysql
  
  basedir=/usr/local/mysql
  
  datadir=/data/mysql/mysql3306/data
  
  socket = /data/mysql/mysql3306/mysql.sock
  
  server_id = 1
  
  port = 3306
  
  log_error=/data/mysql/mysql3306/logs/error.log
  
  log_bin=/data/mysql/mysql3306/logs/mysql-bin
  
  binlog_format=row
  
  gtid_mode=on
  
  enforce_gtid_consistency=true
  
  log_slave_updates=1
  
  max_connections=1024
  
  wait_timeout=60
  
  sort_buffer_size=2M
  
  max_allowed_packet=32M
  
  join_buffer_size=2M
  
  innodb_buffer_pool_size=128M
  
  innodb_flush_log_at_trx_commit=1
  
  innodb_log_buffer_size=32M
  
  innodb_log_file_size=128M
  
  innodb_log_files_in_group=2
  
  binlog_cache_size=2M
  
  max_binlog_cache_size=8M
  
  max_binlog_size=512M
  
  expire_logs_days=7
  
  slow_query_log=on
  
  slow_query_log_file=/data/mysql/mysql3306/logs/slow.log
  
  long_query_time=0.5
  
  log_queries_not_using_indexes=1
  

  。安裝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編輯
  export 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
  
 

3.mysql參數配置

## my.cnf for MySQL 5.7/8.0
## 注意:個別建議可能需要根據實際情況作調整,請自行判斷或聯系我,本人不對這些建議結果負相應責任
## 本配置文件主要適用於MySQL 5.7/8.0版本

[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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM