写点什么

centos7 离线安装 mysql5

  • 2022 年 5 月 11 日
  • 本文字数:3022 字

    阅读完需:约 10 分钟

[mysqld] # 服务端基本设置

基础设置

server-id = 1 # Mysql 服务的唯一编号 每个 mysql 服务 Id 需唯一


port = 3306 # MySQL 监听端口


basedir = /usr/local/mysql # MySQL 安装根目录


datadir = /home/mysql/data # MySQL 数据文件所在位置


tmpdir = /home/mysql/tmp # 临时目录,比如 load data infile 会用到


socket = /home/mysql/tmp/mysql.sock # 为 MySQL 客户端程序和服务器之间的本地通讯指定一个套接字文件


pid-file = /home/mysql/log/mysql.pid # pid 文件所在目录


skip_name_resolve = 1 # 只能用 IP 地址检查客户端的登录,不用主机名


character-set-server = utf8mb4 # 数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用 4 个字节)


transaction_isolation = READ-COMMITTED # 事务隔离级别,默认为可重复读,MySQL 默认可重复读级别


collation-server = utf8mb4_general_ci # 数据库字符集对应一些排序等规则,注意要和 character-set-server 对应


init_connect='SET NAMES utf8mb4' # 设置 client 连接 mysql 时的字符集,防止乱码


lower_case_table_names = 1 # 是否对 sql 语句大小写敏感,1 表示不敏感


max_connections = 400 # 最大连接数


max_connect_errors = 1000 # 最大错误连接数


explicit_defaults_for_timestamp = true # TIMESTAMP 如果没有显示声明 NOT NULL,允许 NULL 值


max_allowed_packet = 128M # SQL 数据包发送的大小,如果有 BLOB 对象建议修改成 1G


interactive_timeout = 1800 # MySQL 连接闲置超过一定时间后(单位:秒)将会被强行关闭


wait_timeout = 1800 # MySQL 默认的 wait_timeout 值为 8 个小时, interactive_timeout 参数需要同时配置才能生效


tmp_table_size = 16M # 内部内存临时表的最大值 ,设置成 128M;比如大数据量的 group by ,order by 时可能用到临时表;超过了这个值将写入磁盘,系统 IO 压力增大


max_heap_table_size = 128M # 定义了用户可以创建的内存表(memory table)的大小


query_cache_size = 0 # 禁用 mysql 的缓存查询结果集功能;后期根据业务情况测试决定是否开启;大部分情况下关闭下面两项


query_cache_type = 0

用户进程分配到的内存设置,每个 session 将会分配参数设置的内存大小

read_buffer_size = 2M # MySQL 读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL 会为它分配一段内存缓冲区。


read_rnd_buffer_size = 8M # MySQL 的随机读缓冲区大小


sort_buffer_size = 8M # MySQL 执行排序使用的缓冲大小


binlog_cache_size = 1M 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 # 一个事务,在没有提交的时候,产生的日志,记录到 Cache 中;等到事务提交需要提交的时候,则把日志持久化到磁盘。默认 binlog_cache_size 大小 32K


back_log = 130 # 在 MySQL 暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中;官方建议 back_log = 50 + (max_connections / 5),封顶数为 900

日志设置

log_error = /home/mysql/log/error.log # 数据库错误日志文件


slow_query_log = 1 # 慢查询 sql 日志设置


long_query_time = 1 # 慢查询时间;超过 1 秒则为慢查询


slow_query_log_file = /home/mysql/log/slow.log # 慢查询日志文件


log_queries_not_using_indexes = 1 # 检查未使用到索引的 sql


log_throttle_queries_not_using_indexes = 5 # 用来表示每分钟允许记录到 slow log 的且未使用索引的 SQL 语句次数。该值默认为 0,表示没有限制


min_examined_row_limit = 100 # 检索的行数必须达到此值才可被记为慢查询,查询检查返回少于该参数指定行的 SQL 不被记录到慢查询日志


expire_logs_days = 5 # MySQL binlog 日志文件保存的过期时间,过期后自动删除

主从复制设置

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


binlog_format = ROW # binlog 记录内容的方式,记录被操作的每一行


binlog_row_image = minimal # 对于 binlog_format = ROW 模式时,减少记录日志的内容,只记录受影响的列

Innodb 设置

innodb_open_files = 500 # 限制 Innodb 能打开的表的数据,如果库里的表特别多的情况,请增加这个。这个值默认是 300


innodb_buffer_pool_size = 64M # InnoDB 使用一个缓冲池来保存索引和原始数据,一般设置物理存储的 60% ~ 70%;这里你设置越大,你在存取表里面数据时所需要的磁盘 I/O 越少


innodb_log_buffer_size = 2M # 此参数确定写日志文件所用的内存大小,以 M 为单位。缓冲区更大能提高性能,但意外的故障将会丢失数据。MySQL 开发人员建议设置为 1-8M 之间


innodb_flush_method = O_DIRECT # O_DIRECT 减少操作系统级别 VFS 的缓存和 Innodb 本身的 buffer 缓存之间的冲突


innodb_write_io_threads = 4 # CPU 多核处理能力设置,根据读,写比例进行调整


innodb_read_io_threads = 4


innodb_lock_wait_timeout = 120 # InnoDB 事务在被回滚之前可以等待一个锁定的超时秒数。InnoDB 在它自己的锁定表中自动检测事务死锁并且回滚事务。InnoDB 用 LOCK TABLES 语句注意到锁定设置。默认值是 50 秒


innodb_log_file_size = 32M # 此参数确定数据日志文件的大小,更大的设置可以提高性能,但也会增加恢复故障数据库所需的时间


(5)安装数据库


cd /usr/local/mysql/bin

初始化数据库,并指定启动 mysql 的用户

./mysqld --initialize --user=mysql


这里最好指定启动 mysql 的用户名,否则就会在启动 MySQL 时出现权限不足的问题


安装完成后,在 my.cnf 中配置的 datadir 目录下生成一个 error.log 文件,里面记录了 root 用户的随机密码。


(6)查看并复制下数据库初始化密码,后续登录使用


cat /home/mysql/log/error.log


如图:



(7)设置开机自启动服务

复制启动脚本到资源目录

cd /usr/local/mysql


cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

增加 mysqld 服务控制脚本执行权限

chmod +x /etc/rc.d/init.d/mysqld

将 mysqld 服务加入到系统服务

chkconfig --add mysqld

检查 mysqld 服务是否已经生效

chkconfig --list mysqld

切换至 mysql 用户,启动 mysql

su mysql


service mysqld start


(8)配置环境变量

切换至 mysql 用户(上面启动 msyql 时已经切换了用户,这里无需切换,若为切换的记得切换)

su - mysql

修改配置文件,增加 PATH=$PATH:/usr/local/mysql/bin

vi ~/.bash_profile

立即生效

source ~/.bash_profile


如图:



(9)登陆,修改密码

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
centos7离线安装mysql5_Java_爱好编程进阶_InfoQ写作社区