你做的网站可视区域多少,商洛免费做网站公司,长春网站建设开发维护,100个免费推广网站一、下载官网压缩包#xff08;tar.gz#xff09;
MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/根据自己的操作系统发行版本、位数、gclib版本、mysql版本来选择对应的压缩包
比如我是 linux系统debian10#xff08;官网只有linux ge…一、下载官网压缩包tar.gz
MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/根据自己的操作系统发行版本、位数、gclib版本、mysql版本来选择对应的压缩包
比如我是 linux系统debian10官网只有linux generic通用版本的tar.gz包、64位操作系统gclib版本是2.28。uname -m命令可查操作系统版本。ldd --version命令可查gclib版本并且咱们选择的是8.0以上的mysql版本。 uname -m ldd --version 我们复制下载链接之后直接wget下载输入以下命令 cd /root/soft wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz 二、解压缩
解压缩把解压目录重命名为mysql8 tar -zxvf mysql-8.0.34-linux-glibc2.28-x86_64.tar.gz mv mysql-8.0.34-linux-glibc2.28-x86_64 mysql8 三、添加PATH环境变量 echo export PATH$PATH:/usr/local/mysql8/bin /etc/profile # 编辑 /etc/profile 文件 source /etc/profile # 使更改生效 查看环境变量是否生效 mysql --version 四、准备目录并赋权 cd mysql8 mkdir data cd data #datas用于存放数据logs用于存放日志 mkdir datas logs cd /root/soft chmod -R 750 mysql8 五、创建配置文件my.cnf cd /etc touch my.cnf vim my.cnf 配置内容如下这边只配了最最重要的其他后续再补充
[mysqld]
port3306
basedir/root/soft/mysql8
datadir/root/soft/mysql8/data/datas
socket/tmp/mysql.sock
pid-file/root/soft/mysql8/data/logs/mysql.pid
log-error/root/soft/mysql8/data/logs/error.log
tmpdir/tmp
server_id1
userroot#数据库默认字符集, 主流字符集支持一些特殊表情符号特殊表情符占用4个字节
character-set-serverutf8mb4
#数据库字符集对应一些排序等规则注意要和character-set-server对应
collation-server utf8mb4_general_ci#若你的MySQL数据库主要运行在境外请务必根据实际情况调整本参数
default_time_zone 8:00#是否启用慢查询日志1为启用0为禁用
slow_query_log 1
#指定慢查询日志文件的路径和名字
slow_query_log_file /root/soft/mysql8/data/logs/slow.log
#慢查询执行的秒数必须达到此值可被记录
long_query_time 3#MySQL连接闲置超过一定时间后(单位秒)将会被强行关闭
#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout 1800
wait_timeout 1800#####RedoLog日志 和 binlog日志的写磁盘频率设置 BEGIN ###################################
# RedoLog日志用于增删改事务操作 binlog日志用于归档主从复制
# 为什么会有两份日志呢
# 因为最开始MySQL没有 InnoDB 引擎,自带MyISAM引擎没有 crash-safe能力binlog日志只用于归档
# InnoDB 引擎是另一个公司以插件形式引入MySQL的采用RedoLog日志来实现 crash-safe 能力# redo log 的写入即事务操作拆成两阶段提交2PCprepare阶段 和 commit阶段
#(事务步骤1) 执行commit命令InnoDB redo log 写盘然后告知Mysql执行器:[你可以写binlog了且一并提交事务]事务进入 prepare 状态
#(事务步骤2) 如果前面 prepare 成功Mysql执行器生成 binlog 并且将binlog日志写盘
#(事务步骤3) 如果binlog写盘成功Mysql执行器一并调用InnoDB引擎的提交事务接口事务进入 commit 状态操作完成事务结束#innodb_flush_log_at_trx_commit取值:0/1/2默认值1是 InnoDB 引擎特有的ib_logfile的刷新方式(记录的是redo log和undo log的信息)
#innodb_flush_log_at_trx_commit0表示每次事务提交时不进行刷盘操作系统默认 master thread 每隔 1s 进行一次重做日志的同步。兼顾安全性和性能。
#innodb_flush_log_at_trx_commit1表示每次事务提交时都将进行同步刷盘操作默认值。最安全。
#innodb_flush_log_at_trx_commit2表示每次事务提交时都只把redo log buffer内容写入page cache不进行同步。由操作系统自己决定什么时候同步到磁盘文件。最不安全。#sync_binlog是MySQL的二进制日志(binary log)同步到磁盘的频率。取值0-N
#sync_binlog0当事务提交之后MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘而让Filesystem自行决定什么时候来做同步或者cache满了之后才同步到磁盘。这个是性能最好的。
#sync_binlog1当每进行1次事务提交之后MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
#sync_binlogn当每进行n次事务提交之后MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。#控制 redolog 写磁盘频安全性要求一般设为0即可支付业务设为1
innodb_flush_log_at_trx_commit 0#控制 binlog 写磁盘频率建议0到100并发高可设置100
sync_binlog 20#####RedoLog日志 和 binlog日志的写磁盘频率设置 END #####################################[client]
default-character-setutf8mb4
socket/tmp/mysql.sock
[mysql]
default-character-set utf8mb4更完整的参数可以查看下面官网文档的链接:
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.htmlhttp://xn--5-uc2b586h.xn--7-818a010cpwbkdq3ik0c386aen5ehttps://dev.mysql.com/doc/refman/8.0/en/server-system-variables.htmlhttp://xn--8-uc2b586h.xn--0-818a010cpwbkdq3ik0c386aen5e
也可以参考这篇博客
MySQL8配置文件详解_mysql8.03 配置文件-CSDN博客 六、初始化mysql mysqld --defaults-file/etc/my.cnf --basedir/root/soft/mysql8 --datadir/root/soft/mysql8/data/datas --userroot --initialize-insecure 各参数意义 --defaults-file: 指定配置文件 放在--initialize-insecure前 --user: 指定用户 --basedir: 指定安装目录 --datadir: 指定初始化数据目录 --initialize-insecure: 初始化设置空密码若无该参数理论上会随机生成密码需在/root/soft/mysql/data/logs/error.log中查看,但是实际情况我这边会初始化失败 或者你也可以在配置文件中去配置basedir,datadiruser等信息这样你就不用写这些选项了 mysqld --defaults-file/etc/my.cnf --initialize-insecure 如果生产环境或云服务设置了空密码后续记得修改 七、启动MySQL
命令如下 mysqld_safe --defaults-file/etc/my.cnf 查看是否启动成功 ps -ef|grep mysql 如果失败可以查日志不过一般失败原因都是my.cnf配置不对或者目录没创建或者目录没权限解决办法先解决上面提到的问题重新创建并赋权datas和logs目录重新初始化和启动就好。 cd /root/soft/mysql8/data tail -1111f logs/error.log 停止mysql服务命令如下 mysqladmin -uroot -p shutdown 八、连接mysql mysql -uroot -p