marquee 当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生,欢迎入坑运维大部队,准备好熬夜秃顶了吗?
智杰
个人博客站点

mysql5.7的安装相对于5.6还是有点区别,本章主要介绍二进制的安装方法。

环境:centos7,mysql5.7.12

 

安装

我下载的是版本是mysql5.7.12社区版,具体的下载方法就不介绍,在官网就可以找到。

解压拷贝

mv mysql-5.7.14-linux-glibc2.5-i686 /usr/local/mysql

先创建mysql用户

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

创建mysql的数据目录,该目录在初始化数据库的时候会用到

mkdir /mysql /mysql/data /mysql/log 

修改目录权限

chown -R mysql:mysql /usr/local/mysql /mysql

创建my.cnf文件

vim /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
server_id=10
port = 3306
user = mysqllog-bin = /mysql/data/mysql-binexpire_logs_days = 1
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /mysql/data
pid-file = /mysql/data/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
#log_bin_trust_function_creators = 1 #注意如果在数据库中使用了函数,在主库从库中一定要开启这个配置不然在执行
[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
server_id=10
port = 3306
user = mysqllog-bin = /mysql/data/mysql-binexpire_logs_days = 1
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /mysql/data
pid-file = /mysql/data/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
#log_bin_trust_function_creators = 1 #注意如果在数据库中使用了函数,在主库从库中一定要开启这个配置不然在执行函数时从库会中断,因为主从复制开启了binlog二进制日志记录。
#log-queries-not-using-indexes = 0   #注意在定义慢日志的时候这个参数会吧所有的sql打印到日志,低于设置的时间记录到文件,默认是开启

innodb_buffer_pool_size = 2048M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1   #如果注重数据插入性能需要关闭这个配置选项,默认是开启的
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
sort_buffer_size = 1G
ft_min_word_len = 2
ft_stopword_file = ""
innodb_data_file_path=ibdata1:1024M:autoextend
lower_case_table_names = 1          #数据库不区分大小写

log_error = /mysql/log/mysql-error.log 
slow_query_log = 1
long_query_time = 1 
slow_query_log_file = /mysql/log/mysql-slow.log

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
时从库会中断,因为主从复制开启了binlog二进制日志记录。 #log-queries-not-using-indexes = 0 #注意在定义慢日志的时候这个参数会吧所有的sql打印到日志,低于设置的时间记录到文件,默认是开启 innodb_buffer_pool_size = 1024M innodb_file_per_table = 1 innodb_write_io_threads = 4 innodb_read_io_threads = 4 innodb_purge_threads = 2 innodb_flush_log_at_trx_commit = 1 #如果注重数据插入性能需要关闭这个配置选项,默认是开启的 innodb_log_file_size = 512M innodb_log_files_in_group = 2 innodb_log_buffer_size = 16M innodb_max_dirty_pages_pct = 80 innodb_lock_wait_timeout = 30 innodb_data_file_path=ibdata1:1024M:autoextend log_error = /mysql/log/mysql-error.log slow_query_log = 1 long_query_time = 1 slow_query_log_file = /mysql/log/mysql-slow.log sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

说明:这里只是进行了一些简单的配置 

初始化数据库

在5.7.6之前初始化的方法是:bin/mysql_install_db --user=mysql

我下载的是5.7.12版本,5.7.6之后的版本初始化数据库不再使用mysql_install_db

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data  --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp

 如果配置了my.cnf的log_error,那么初始密码在log_error文件中,否则会打印出来。

bin/mysql_ssl_rsa_setup --datadir=/mysql/data

修改目录权限

chown -R mysql:mysql /usr/local/mysql /mysql

配置启动文件

cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
service mysql start

配置环境变量

PATH=$PATH:/usr/local/mysql/bin
source /etc/profile

修改密码

在5.7中存储密码的字段不再是password了,变成了authentication_string

update mysql.user set authentication_string=password('root') where user='root';

修改root密码后如果第一次使用root用户登入mysql系统还会需要重置一次root密码

SET PASSWORD=PASSWORD('root');
flush privileges;

和5.6相比数据目录有一些变化板块多出了一些.pem后缀的文件暂时还不知道这些文件的作用,其中多出的sys库是一个很大的特点,这个系统库中包含了很多资源信息统计的视图表包括服务器的io、memory、wait、lock、statement等

 

 

总结

 mysql5.7虽然还没有深入研究,但是它已经给我带来了很多的惊喜,特别是增加了sys库对于性能的分析有多了很多的便利,mysql已经越来越完善了,期待后面的使用。

posted on 2021-11-02 14:47  智杰  阅读(18)  评论(0编辑  收藏  举报

marquee 当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生