centos7下mysql 8.0.32 二进制部署

官网下载最新版本,这里下载mysql 8.0.32,将下载下来的压缩包上传至服务器:

MySQL :: Download MySQL Community Server

相关依赖都装一下

yum -y install net-tools perl perl-devel perl-JSON.noarch autoconf libaio libaio-devel ncurses-devel numactl.x86_64

上传至服务器

建立用户

useradd mysql -s /sbin/nologin

建立对应目录,并改变拥有者

#data目录需位于lvm且独立磁盘空间便于后续容量扩充

mkdir /data460/mysql

 #存放mysql 二进制文件          
mkdir -p /data460/mysql/mysql8032/

#存放mysql 数据文件
mkdir -p /data460/mysql/data

 #存放二进制日志

mkdir -p /data460/mysql/binlog

#存放mysql 参数文件
mkdir -p /data460/mysql/my.cnf.d

mkdir -p /data460/mysql/

mkdir -p /run/mysqld/

chown -R mysql:mysql /run/mysqld/

chown -R mysql:mysql /data460/mysql

3、解压缩mysql压缩包至 /data460/mysql/mysql8032/

tar -xzvf mysql-8.0.32-el7-x86_64.tar.gz --strip 1 -C /data460/mysql/mysql8032/

改变用户

chown -R mysql:mysql /data/mysqlhospital/mysql8035

4建立mysql参数文件,参数值根据服务器配置以及实际环境调整:

cd /data460/mysql/my.cnf.d/
touch mysql-server.cnf

5参数如下所示,根据实际情况更改

[mysqld]

user=mysql

port=13306

#字符集

default-storage-engine=INNODB

character-set-server=utf8mb4

collation-server=utf8mb4_bin

#配置serverid ,默认使用ip地址最后一项

server-id = 202

datadir=/data460/mysql/data #指定mysql数据文件目录

socket=/tmp/mysql.sock #指定mysql scoket文件

log-error=/data460/mysql/mysqlerr.log #指定mysql 错误日志文件

pid-file=/run/mysqld/mysqld.pid #指定mysqld 进程pid 文件

log-bin=mysql-bin #开启mysql binlog

sync_binlog=1 #指定每次事务的binlog都持久化到磁盘

binlog_format=row #指定mysql binglog 格式为row

binlog_expire_logs_seconds=604800

max-binlog-size = 500M

log-bin = /data460/mysql/binlog/mysql-bin.log

character-set-server=utf8mb4 #指定mysql数据库字符集

skip-name-resolve #禁用DNS解析, ip解析成主机名

max_connections=1000 #最大连接数

lock_wait_timeout=60 #指定mysql metadata lock 超时值为60s

#innodb

innodb_buffer_pool_size = 1G #指定buffer pool 内存大小

innodb_flush_log_at_trx_commit=1 #每次事务的redo log都直接持久化到磁盘

innodb_lock_wait_timeout=120 #指定innodb 行锁超时为120秒,默认值

innodb_file_per_table=ON #开启表独立表空间

innodb_print_all_deadlocks=on ##开启死锁日志记录

innodb_rollback_on_timeout=on #指定事务超时后回滚整个事务

#innodb日志文件大小

innodb_log_file_size = 512M

#最大数据包大小,支持大数据量插入更新及查询,最大值为1G,此处设置为512M

max_allowed_packet=512M

# 数据表默认时区

default-time-zone='+08:00'

6.变更参数文件所有者

chown mysql:mysql mysql-server.cnf

7.创建错误文件并改变用户

touch /data460/mysql/mysqlerr.log

chown mysql:mysql /data460/mysql/mysqlerr.log

初始化数据库

/data460/mysql/mysql8032/bin/mysqld --defaults-file=/data460/mysql/my.cnf.d/mysql-server.cnf --initialize --user=mysql --datadir=/data460/mysql/data

另外一个目录

/data/mysqlhospital/mysql8035/bin/mysqld --defaults-file=/data/mysqlhospital/my.cnf.d/mysql-server.cnf --initialize --user=mysql --datadir=/data/mysqlhospital/data/

启动服务

/data460/mysql/mysql8032/bin/mysqld_safe --defaults-file=/data460/mysql/my.cnf.d/mysql-server.cnf

另外一个目录

/data/mysqlhospital/mysql8035/bin/mysqld_safe --defaults-file=/data/mysqlhospital/my.cnf.d/mysql-server.cnf 

ctl+z 挂起

bg %1 放入后台

path加入mysql二进制路径

vim /root/.bash_profile

加入

PATH=/data460/mysql/mysql8032/bin/:$PATH

source /root/.bash_profile

查找初始密码

grep password /data460/mysql/mysqlerr.log

进入更改初始密码

 mysql --socket=/data/mysqlhospital/mysql.sock --port=13302 -uroot -p

alter user root@'localhost' identified by "gDEhEdJG35x0*hAB";

#创建远程用户

create user root@'%' identified by "gDEhEdJG35x0*hAB";

grant all privileges on *.* to root@'%';

flush privileges;

在系统级别修改mysql打开最大文件数(非必选项,最好修改)

2.1 编辑系统配置文件:

vim /etc/security/limits.conf

在文件中增加如下:

Mysql 打开文件限制和打开进程限制

mysql hard nofile 65535

mysql soft nofile 65535

mysql hard nproc 65535

mysql soft nproc 65535

重启系统

停止mysql

mysqladmin -uroot -p shutdown

加入自启动

vim /etc/systemd/system/mysqld.service

# cat /etc/systemd/system/mysqld.service

[Unit]

Description=Mysql Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target

After=syslog.target

[Service]

User=mysql

Group=mysql

PIDFile=/run/nginx.pid #修改成mysql的启动文件及配置文件路径

ExecStart=/data460/mysql/mysql8032/bin/mysqld_safe --defaults-file=/data460/mysql/my.cnf.d/mysql-server.cnf

[Install]

WantedBy=multi-user.target

保存成功后加入开机自启动,并使用reload加载刚刚配置的服务。
systemctl enable mysqld
systemctl daemon-reload
使用journalctl查看日志
journalctl -f -u mysqld.service
systemctl也可以支持启动多个mysql实例,只需要在服务命名时进行区分。例如将服务名mysqld.service 可以写成mysql8.0.service 和mysql5.7.service ,并进行相应的启动文件命令修改即可。

mysql8 初始化不区分大小写。

mysql8.0 要求我们不能在initialize之后再更改 lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。另外,mysql8.0的状态只能为不区分大小写或区分大小写,一种情况

所以在初始化时设置 lower-case-table-names=1

mysqld --initialize-insecure --user mysql --datadir=/opt/data --lower-case-table-names=1

vi my.cnf 新添加

lower_case_table_names=1

重启

systemctl restart mysqld

  • 34
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值