预编译安装mysql5.7.32
官方文档:http://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
1、下载预编译包
mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
2、准备环境
创建用户、组
[root@node4 ~]# groupadd mysql
[root@node4 ~]# useradd -r -g mysql -s /bin/false mysql
解压预编译包
[root@node4 ~]# tar xf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
创建软连接
[root@node4 ~]# cd /usr/local/
[root@node4 local]# ln -s mysql-5.7.32-linux-glibc2.12-x86_64 mysql
3、Mysql初始化
[root@node4 local]# cd mysql
[root@node4 mysql]# mkdir mysql-files
[root@node4 mysql]# chmod 750 mysql-files
[root@node4 mysql]# chown -R mysql .
[root@node4 mysql]# chgrp -R mysql .
[root@node4 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data (保存初始密码)
[root@node4 mysql]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
[root@node4 mysql]# chown -R root .
[root@node4 mysql]# chown -R mysql data mysql-files
4、编辑配置文件,根据需求配置
[root@node4 mysql]# cat /etc/my.cnf
[mysqld] #服务端
basedir=/usr/local/mysql #软件安装目录
datadir=/usr/local/mysql/data #数据库数据存放目录
log_error = /usr/local/mysql/mysql-error.log #错误日志路径
user=mysql #mysql用户
socket=/tmp/mysql.sock #socket文件存放位置
server-id = 1 #表示是本机的序号为1
default-storage-engine = InnoDB #默认存储引擎
character_set_server=utf8 #设置默认字符编码
collation-server=utf8_general_c #设置字符编码,不区分大小写, utf8_bin区分大小写
loose-default-character-set =utf8 #以后创建的所有数据库或者表都是默认的utf8
max_connections = 1000 #数据库最大连接(可以过'conn%'通配符查看当前状态的连接数量,以定夺该值的大)
log_bin = mysql-bin #开启binlog日志
expire_logs_days = 30 #超过30天的binlog删除
slow_query_log = 1 #开启慢查询
long_query_time = 10 #慢查询时间超过10秒则为慢查询
slow_query_log_file = /usr/local/mysql/mysql-slow.log #慢查询日志路径
innodb_thread_concurrency = 0 # 默认设置为 0,表示不限制并发数,这里推荐设置为0,更好去发挥CPU多核处理能力,提高并发量
innodb_file_per_table = 1 #表示独立表空间(优点:每个数据库的每个表都会生成一个数据空间;每个表都有自已独立的表空间;每个表的数据和索引都会存在自已的表空间中;可以实现单表在不同的数据库中移动;空间可以回收(除drop table操作处,表空不能自已回收);缺点:单表增加过大,如超过100G;共享表空间在Insert操作上少有优势。其它都没独立表空间表现好。当启用独立表空间时,请合理调整:innodb_open_files限制Innodb能打开的表的数据,如果库里的表特别多的情况,请增加这个 innodb_open_files = 500)
[mysql] #客户端
socket=/tmp/mysql.sock
5、Centos7配置启动mysqld服务
[root@node4 mysql]# cat /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(5.7)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@node4 mysql]#
6、配置环境变量
[root@node4 mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@node4 mysql]# source /etc/profile
7、启动数据库
[root@node4 mysql]# systemctl start mysqld.service
[root@node4 mysql]# ss -ltnp | grep 3306
LISTEN 0 80 [::]:3306 [::]:* users:(("mysqld",pid=1300,fd=16))
验证是否能够登录数据库
[root@node4 mysql]# Mysql -uroot -p'初始化提示的初始密码'
8、初始化数据库(可选),初始化后数据库恢复到初始安装,注意保存数据
[root@node4 mysql]# systemctl stop mysqld
[root@node4 mysql]# rm -rf /usr/local/mysql/data
[root@node4 mysql]# chown -R mysql .
[root@node4 mysql]# chgrp -R mysql .
[root@node4 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data (保存初始换数据库root密码)
[root@node4 mysql]# bin/mysql_ssl_rsa_setup
[root@node4 mysql]# chown -R root .
[root@node4 mysql]# chown -R mysql data mysql-files
启动服务
[root@node4 mysql]# systemctl start mysqld
验证
[root@node4 mysql]# Mysql -uroot -p
创建数据库:
create database ceshi default character set utf8 collate utf8_general_ci;
创建账号并授权:
grant all on ceshi.* to 'ceshi'@'%' identified by 'Cs@123456';