搜索

生产环境mysql linux 平台通用二进制包安装部署


发布时间: 2022-11-24 17:48:06    浏览次数:22 次

              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)

免责声明 生产环境mysql linux 平台通用二进制包安装部署,资源类别:文本, 浏览次数:22 次, 文件大小:-- , 由本站蜘蛛搜索收录2022-11-24 05:48:06。此页面由程序自动采集,只作交流和学习使用,本站不储存任何资源文件,如有侵权内容请联系我们举报删除, 感谢您对本站的支持。 原文链接:https://www.cnblogs.com/oradba/p/16784013.html