mysql 是开源关系型数据库,在互联网、中小企业广泛流行,有大量的用户案例。

mysql 支持windows、linux、unix 操作系统,目前生产环境推荐部署在linux 平台。

mysql 在linux 平台提供rpm、deb 二进制安装包以及通用linux二进制包,生产环境推荐使用通用二进制包,测试环境可以使用rpm、deb 二进制安装包。自mysql 被oracle 公司收购之后,mysql 演化成社区版和商业版,社区版本可以免费使用,需用户自身承担技术支持以及使用过程中的技术风险,商业版需付费使用,oracle 公司提供官方技术支持,二者之间存在少许功能差异,这里主要介绍mysql 社区版 linux 平台通用二进制包生产环境部署最佳实践。

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

https://dev.mysql.com/downloads/mysql/

1665468152673

屏幕截图 2022-10-11 141429

  2、建立mysql所需的用户以及目录,目录需位于lvm卷且独立磁盘空间便于后续容量扩充:

useradd mysql -s /sbin/nologin
mkdir /data                          –data目录需位于lvm且独立磁盘空间便于后续容量扩充
mkdir -p /data/mysql/mysql-8.0.30/   — 存放mysql 二进制文件
mkdir -p /data/mysql/data            –存放mysql 数据文件
mkdir -p /data/mysql/my.cnf.d        –存放mysql 参数文件
chown -R mysql:mysql  /data

 

4、解压缩mysql压缩包至/data/mysql/mysql-8.0.30/:

tar -Jxvf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz –strip 1 -C /data/mysql/mysql-8.0.30/

屏幕截图 2022-10-11 141917

屏幕截图 2022-10-11 141917

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

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

mysql 常用参数(根据实际环境设置值)

[mysqld]
user=mysql
datadir=/data/mysql/data                       –指定mysql数据文件目录
socket=/tmp/mysql.sock                         –指定mysql scoket文件
log-error=/data/mysql/data/mysqld.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
  expire_logs_days=7                             –binlog 保留7天,
character-set-server=utf8mb4            –指定mysql数据库字符集
lower_case_table_names=1                 –数据库名、表名不区分大小写
skip-name-resolve                               –禁用DNS解析, ip解析成主机名
max_connections = 1000                     –最大连接数
lock_wait_timeout=60                          –指定mysql metadata lock 超时值为60s
  [innodb]
  innodb_buffer_pool_size = 4G             –指定buffer pool 内存大小
innodb_buffer_pool_instaces=2           –通过将buffer pool划分成多个区域来减小内部锁争用来提高MySQL吞吐量
innodb_undo_logs = 128                     –指定undo 回滚段个数,默认128
  innodb_undo_tablespaces = 4             –指定undo 表空间的数量
innodb_log_files_in_group = 4             –指定redo log文件数量
innodb_flush_log_at_trx_commit=1      –每次事务的redo log都直接持久化到磁盘
innodb_log_file_size=1GB                     –指定redo log 文件大小
innodb_lock_wait_timeout=50              –指定innodb 行锁超时为50秒,默认值  
innodb_file_per_table=ON                    –开启表独立表空间
innodb_print_all_deadlocks=on            –开启死锁日志记录
innodb_rollback_on_timeout=on          –指定事务超时后回滚整个事务

6、mysql初始化,将会生成root初始密码,在/data/mysql/data/mysqld.log 中可以找到:

/data/mysql/mysql-8.0.30/bin/mysqld  –defaults-file=/data/mysql/my.cnf.d/mysql-server.cnf  –initialize  –user=mysql –basedir=/data/mysql/mysql-8.0.30  –datadir=/data/mysql/data

7、启动mysql,设置开机mysql 服务自启动:

启动mysql 服务:

mkdir -p /run/mysqld
chown -R mysql:mysql  /run/mysqld
/data/mysql/mysql-8.0.30/bin/mysqld_safe –defaults-file=/data/mysql/my.cnf.d/mysql-server.cnf

设置开机自启动mysql服务:

修改文件/data/mysql/mysql-8.0.30/support-files/mysql.server 调整如下参数值并将文件复制到/etc/init.d目录

basedir=/data/mysql/mysql-8.0.30/
datadir=/data/mysql/data
mysqld_pid_file_path=/run/mysqld

cp  /data/mysql/mysql-8.0.30/support-files/mysql.server  /etc/init.d

ln -s /data/mysql/my.cnf.d/mysql-server.cnf /etc/my.cnf  –创建/etc/my.cnf 链接文件指向mysql 参数文件

chkconfig mysql.server on  –设置开机自启动mysql server 服务

8、使用mysql,客户端连接工具可以使用mysql workbench:

修改linux root账号path 环境变量,增加mysql 二进制文件路径:

PATH=$PATH:$HOME/bin:/data/mysql/mysql-8.0.30/bin

执行mysql 命令行客户端提示如下错误:

mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

解决方式:yum install libncurses*   –yum 安装缺失的依赖库

修改mysql root 初始密码,并限制root账号登录ip客户端:

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql>alter user ‘root’@’localhost’ identified by ‘password’;   –生产环境尽可能限制root账号登录客户端ip地址 密码设置复杂一些  

mysql->alter user ‘root’@’dba-pc’ identified by ‘password’;      –生产环境尽可能限制root账号登录客户端ip地址 密码设置复杂一些

mysql> flush privileges;

mysql> show databases;
+——————–+
| Database           |
+——————–+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+——————–+
4 rows in set (0.00 sec)

原文地址:http://www.cnblogs.com/oradba/p/16784013.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性