1. 程式人生 > >linux下安裝mysql(5.7版本)

linux下安裝mysql(5.7版本)

阿里雲上面,安靜環境安裝mysql資料庫,指定安裝目錄、指定資料檔案 目錄

linux系統版本: CentOS Linux release 7.4 64位

安裝原始檔版本:mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

mysql安裝路徑:/apply/mysql

資料庫檔案資料位置:/data/mysql

安裝步驟

1、在系統跟目下建立apply和data

# mkdir apply

# mkdir data

# mkdir mysql

2、上傳mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz到apply資料夾下

3、在apply資料夾下解壓JDK

# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz 

4、重新命名解壓後JDK資料夾

# mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql

5、建立mysql使用者組和mysql使用者

# groupadd mysql

# useradd -r -g mysql mysql

6、關聯mysql使用者到mysql使用者組中

# chown -R mysql:mysql  /apply/mysql/

# chown -R mysql:mysql  /data/mysql/

# chown -R mysql  /apply/mysql/ 

# chown -R mysql  /data/mysql

7、更改mysql安裝資料夾mysql/的許可權

# chmod -R 755 /apply/mysql/

8、安裝libaio依賴包

查詢是否安裝libaio依賴包(如果是阿里雲或者騰訊雲的基本都自帶的有)

# yum search libaio

如果沒有安裝用yum命令安裝

# yum install libaio

9、初始化mysql命令

# cd /apply/mysql/bin

# ./mysqld --user=mysql --basedir=/apply/mysql --datadir=/data/mysql --initialize

這裡會報錯:

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

是因為libnuma安裝的是32位的,我們需要的則是64位

執行命令安裝:

# yum install numactl.x86_64

再次執行初始化命令就OK了

如果還報這個錯的話執行安裝libaio就好了,命令↓

# yum install -y libaio

10、啟動mysql服務

# sh /apply/mysql/support-files/mysql.server start

這個時候啟動mysql服務的話會報錯,如圖↓

這是因為沒有修改mysql配置檔案造成的

11、修改mysql.servre配置檔案

# vim /apply/mysql/support-files/mysql.server

修改前↓

修改後↓

if test -z "$basedir"

then

  basedir=/apply/mysql

  bindir=/apply/mysql/bin

  if test -z "$datadir"

  then

    datadir=/data/mysql

  fi

  sbindir=/apply/mysql/bin

  libexecdir=/apply/mysql/bin

else

  bindir="$basedir/bin"

  if test -z "$datadir"

  then

    datadir="$basedir/data"

  fi

  sbindir="$basedir/sbin"

  libexecdir="$basedir/libexec"

fi

 

編輯好之後命令:wq!儲存並退出

# cp /apply/mysql/support-files/mysql.server  /etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

12、修改my.cnf檔案

# vim /etc/my.cnf

將下面內容替換當前的my.cnf檔案內容

# pipe

# socket=0.0

port=3306

[mysql]

default-character-set=utf8

[mysqld]

basedir=/apply/mysql

datadir=/data/mysql

port=3306

pid-file=/apply/mysql/mysqld.pid

#skip-grant-tables

skip-name-resolve

socket = /apply/mysql/mysql.sock

character-set-server=utf8

default-storage-engine=INNODB

explicit_defaults_for_timestamp = true

# Server Id.

server-id=1

max_connections=2000

query_cache_size=0

table_open_cache=2000

tmp_table_size=246M

thread_cache_size=300

#限定用於每個資料庫執行緒的棧大小。預設設定足以滿足大多數應用

thread_stack = 192k

key_buffer_size=512M

read_buffer_size=4M

read_rnd_buffer_size=32M

innodb_data_home_dir = /data/mysql

innodb_flush_log_at_trx_commit=0

innodb_log_buffer_size=16M

innodb_buffer_pool_size=256M

innodb_log_file_size=128M

innodb_thread_concurrency=128

innodb_autoextend_increment=1000

innodb_buffer_pool_instances=8

innodb_concurrency_tickets=5000

innodb_old_blocks_time=1000

innodb_open_files=300

innodb_stats_on_metadata=0

innodb_file_per_table=1

innodb_checksum_algorithm=0

back_log=80

flush_time=0

join_buffer_size=128M

max_allowed_packet=1024M

max_connect_errors=2000

open_files_limit=4161

query_cache_type=0

sort_buffer_size=32M

table_definition_cache=1400

binlog_row_event_max_size=8K

sync_master_info=10000

sync_relay_log=10000

sync_relay_log_info=10000

#批量插入資料快取大小,可以有效提高插入效率,預設為8M

bulk_insert_buffer_size = 64M

interactive_timeout = 120

wait_timeout = 120

log-bin-trust-function-creators=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES




#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

 

13、啟動mysql