MySQL5.7.16单实例安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42018518/article/details/88830047

目录

一、下载(mysql-5.7.16.tar.gz)

二、yum安装相关扩展工具

三、下载解压mysql-5.7.16.tar.gz

四、编译安装MySQL

五、创建单实例数据、日志等文件存放路径,如下树形结构,并更改所属组用户

六、初始化MySQL[ 初始化完成后会自带随机密码在输出日志中 ]

七、开启SSL连接(可选)

八、配置MySQL配置文件

九、复制服务脚本并添加到服务中

十、设置MySQLroot密码


一、下载(mysql-5.7.16.tar.gz)

cd /data/soft/

解压

tar -xvf mysql-5.7.16.tar.gz

二、yum安装相关扩展工具

yum  -y install make gcc-c++ cmake  bison   bison-devel ncurses-devel

yum -yinstalllibaio   libaio-devel   perl-Data-Dumper  net-tools screen

三、下载解压mysql-5.7.16.tar.gz

Boost库是一个经过千锤百炼、可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一。

mv /root/boost_1_59_0.tar.bz2 /data/soft

tar -jxvf boost_1_59_0.tar.bz2

mv boost_1_59_0  /usr/local/

四、编译安装MySQL

cd /data/soft/mysql-5.7.16

cmake -DCMAKE_INSTALL_PREFIX=/data/mysql-5.7.16  -DMYSQL_DATADIR=/data/mysql-5.7.16/data  -DSYSCONFDIR==/data/mysql-5.7.16/etc  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/data/mysql-5.7.16/etc/mysql.sock  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DWITH_MEMORY_STORAGE_ENGINE=1  -DDEFAULT_COLLATION=utf8mb4_general_ci  -DWITH_READLINE=1  -DMYSQL_TCP_PORT=3306  -DENABLED_LOCAL_INFILE=1  -DWITH_PARTITION_STORAGE_ENGINE=1  -DEXTRA_CHARSETS=all  -DDEFAULT_CHARSET=utf8mb4  -DENABLE_DOWNLOADS=1  -DWITH_BOOST=/usr/local/boost_1_59_0

#参数说明

参数值说明

配置选项

CMake选项

安装根目录

--prefix=/usr

-DCMAKE_INSTALL_PREFIX=/usr

mysqld目录

--libexecdir=/usr/sbin

-DINSTALL_SBINDIR=sbin

数据存储目录

--localstatedir=/var/lib/mysql

-DMYSQL_DATADIR=/var/lib/mysql

配置文件(my.cnf)目录

--sysconfdir=/etc/mysql

-DSYSCONFDIR=/etc/mysql

插件目录

--with-plugindir=/usr/lib64/mysql/plugin

-DINSTALL_PLUGINDIR=lib64/mysql/plugin

手册文件目录

--mandir=/usr/share/man

-DINSTALL_MANDIR=share/man

共享数据目录

--sharedstatedir=/usr/share/mysql

-DINSTALL_SHAREDIR=share

Library库目录

--libdir=/usr/lib64/mysql

-DINSTALL_LIBDIR=lib64/mysql

Header安装目录

--includedir=/usr/include/mysql

-DINSTALL_INCLUDEDIR=include/mysql

信息文档目录

--infodir=/usr/share/info

-DINSTALL_INFODIR=share/info

make

make install

useradd mysql -s /sbin/nologin       #/sbin/nologin意思是用户不允许登录(通过ftp可以连接)

chown -R mysql:mysql  /data/mysql-5.7.16/       #变更所属组、用户

cd /data/mysql-5.7.16/

#配置环境变量

# echo "export PATH=$PATH:/data/mysql-5.7.16/lib:/data/mysql-5.7.16/bin:" >> /etc/profile

# source /etc/profile

五、创建单实例数据、日志等文件存放路径,如下树形结构,并更改所属组用户

  1 /data

  2 ├── mysql-5.7.16

  4 │  ├── my.cnf

  3 ├── mysql5.7.16data

  4 │  ├── mysql3220

  5 │  │  ├── data

  6 │  │  ├── mysqld.pid

  7 │  │  ├── mysql.sock

  8 │  │  └── mysql.sock.lock

  9├── mysql5.7.16log

 10│  ├── mysql3220

 11│  │  ├── binlogs

 12│  │  └── relaylogs

 13│  ├── mysqld-5.7-err.log

 14│  ├── mysql_multi.log

 15│  └── slow.log

# mkdir -p/data/mysql5.7.16data/mysql3220

# mkdir -p/data/mysql5.7.16log/mysql3220/binlogs

# mkdir -p/data/mysql5.7.16log/mysql3220/relaylogs

# chown -R mysql.mysql /data/mysql5.7.16data/

# chown -R mysql.mysql /data/mysql5.7.16log/

六、初始化MySQL[ 初始化完成后会自带随机密码在输出日志中 ]

# /data/mysql-5.7.16/bin/mysqld --initialize  --basedir=/data/mysql-5.7.16/   --datadir=/data/mysql5.7.16data/mysql3220/data  --user=mysql

七、开启SSL连接(可选)

# /data/mysql-5.7.16/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/data/mysql-5.7.16/ --datadir=/data/mysql5.7.16data/mysql3220/data

八、配置MySQL配置文件

# rmdir /etc/my.cnf.d/

# rm -rf /etc/my.cnf

# rsync

# vi mysql-5.7.16/my.cnf

[client]

default-character-set = utf8mb4

port=3220

socket=/data/mysql-5.7.16/etc/mysql.sock

[mysqldump]

quick

max_allowed_packet = 16M

[mysqld]

port = 3220

server-id=68

user=mysql

socket=/data/mysql-5.7.16/etc/mysql.sock

pid-file=/data/mysql5.7.16data/mysql3220/mysqld.pid

datadir=/data/mysql5.7.16data/mysql3220/data/

innodb_data_home_dir=/data/mysql5.7.16data/mysql3220/data/

innodb_log_group_home_dir=/data/mysql5.7.16data/mysql3220/data/

innodb_buffer_pool_size = 50G

log_bin = /data/mysql5.7.16log/mysql3220/binlogs/log_bin

relay_log=/data/mysql5.7.16log/mysql3220/relaylogs/relay-bin

character_set_server = utf8mb4

skip_character_set_client_handshake = 1

collation_server = utf8mb4_bin

init_connect = 'SET NAMES utf8mb4'

group_concat_max_len=102400

bind_address = 0.0.0.0

skip-name-resolve = 0

sync_binlog = 1

innodb_old_blocks_time = 1000

innodb_flush_method = O_DIRECT

back_log = 1000

# 如果存在双主复制,可以打开以下两个参数MASTER01(自增ID技术增长):inc为2,off为1;MASTER02(自增ID偶数增长):inc为2,off为2

# auto_increment_increment =2

# auto_increment_offset =1

report_host=10.20.0.70

basedir = /data/mysql-5.7.16

table_open_cache = 13684

skip-character-set-client-handshake

binlog_cache_size=32M

query_cache_limit = 2M

max_connections = 13684

max_user_connections = 13684

query_cache_size = 256M

query_cache_type = 0

log_queries_not_using_indexes = 1

min_examined_row_limit =100000

key_buffer_size = 1M

read_buffer_size = 1M

sort_buffer_size = 1M

# write_buffer = 2M

max_allowed_packet = 64M

max_connect_errors = 1000000

# net_buffer_length = 8K

# read_rnd_buffer_size = 16M

event_scheduler = 1

lower_case_table_names = 1

# general_log= on

binlog_format = 'ROW'

log-error=/data/mysql5.7.16log/mysqld-5.7-err.log

slow_query_log = on

slow-query-log-file = /data/mysql5.7.16log/slow.log

long_query_time = 1

expire_logs_days = 30

connect_timeout = 300

wait_timeout = 28800

interactive_timeout = 28800

join_buffer_size = 8M

thread_cache_size = 512

thread_stack = 256K

tmp_table_size = 256M

max_heap_table_size = 256M

bulk_insert_buffer_size = 64M

# innodb_autoextend_increment = 256

# innodb_data_file_path=ibdata1:12M:autoextend

innodb_buffer_pool_instances = 8

innodb_read_io_threads = 8

innodb_write_io_threads = 4

innodb_thread_concurrency = 80

innodb_flush_log_at_trx_commit = 2

innodb_log_buffer_size = 96M

innodb_log_file_size = 10G

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 80

innodb_lock_wait_timeout = 120

innodb_file_per_table = 1

# skip_networking = ON

# query_cache_min_res_unit = 4K

log_timestamps=SYSTEM

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

# GTID (master)

log_slave_updates = true

gtid_mode = on

enforce_gtid_consistency = on

[mysql]

no-auto-rehash

九、复制服务脚本并添加到服务中

cp support-files/mysql.server /etc/init.d/mysql5.7

chmod +x /etc/init.d/mysql5.7

chkconfig --add mysql5.7

chkconfig --level 2345 mysql5.7  on

十、设置MySQLroot密码

# 重启MySQL

service mysql5.7 restart

第一种:根据初始化后生产的随机密码设置MySQLroot密码:

# mysql -S /data/mysql-5.7.16/etc/mysql.sock -p'dORk8uo,Djqx'

MySQL>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxxxx');

MySQL> flush privileges;

MySQL>GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1'IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;

MySQL> flush privileges;

MySQL> exit;

MySQL #  mysql -h127.0.0.1 -P 3220 -uroot -pxxxxx

第二种:(依据官方说明5.6以后版本,第一次启动时会在root目录下生产一个随机密码,文件名.mysql_secret。)

mysql

cat/root/.mysql_secret

****mysql_secure_installation

 /etc/init.d/mysql5.7 restart

mysql -p

# mysql -p

Enter password:      #此行输入.mysql_secret里第二行内容

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('xxxxx');  #修改root密码

mysql> flush privileges;

exit

mysql -uroot -pxxxx

*区别在于:

  1. 第一种初始化方式是在安装目录/data/mysql-5.7.16/bin/mysqld --initialize --basedir=/data/mysql-5.7.16/ --datadir=/data/mysql5.7.16data/mysql3220/data --user=mysql利用mysqld进行初始化【推荐】
  2. 第二种初始化方式是在解压目录/data/soft/mysql-5.7.16/client/mysql_install_db --basedir=/data/mysql-5.7.16/ --datadir=/data/mysql-5.7.16/data --user=mysql利用mysql_install_db进行初始化
  1. 我们可以看到root@localhost 被赋予随机生成的一个密码,这与以往的mysql版本不一样, 另外mysql_install_db 这个工具也不再被推荐了, mysql_install_db is deprecated. Please consider switching to mysqld --initialize。另外,在初始化时如果加上 –initial-insecure,则会创建空密码的 root@localhost 账号,否则会创建带密码的 root@localhost 账号,密码直接写在 log-error 日志文件中(在5.6版本中是放在 ~/.mysql_secret 文件里,更加隐蔽,不熟悉的话可能会无所适从)

猜你喜欢

转载自blog.csdn.net/weixin_42018518/article/details/88830047
今日推荐