ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

linux 安装mysql8.0 tar.xz

2021-10-31 12:31:24  阅读:209  来源: 互联网

标签:8.0 20 log tar MySQL xz mysql8.0 mysql home


1、下载相应的MySQL版本

2、解压到home目录下

3、修改my.cnf

[client]
port = 3306 
# MySQL客户端默认端口号

socket = /home/mysql/mysql-8.0.20/socket/mysql.sock
# 用于本地连接的Unix套接字文件存放路径

default-character-set = utf8mb4
# MySQL客户端默认字符集

[mysql]
auto-rehash
# 开启tab补齐功能

# 用于本地连接的Unix套接字文件存放路径

default-character-set = utf8mb4
# MySQL客户端默认字符集

max_allowed_packet = 256M
# 指定在网络传输中一次消息传输量的最大值。系统默认值 为1MB,最大值是1GB,必须设置1024的倍数。

log_error = /home/mysql/mysql-8.0.20/logs/error_log/error.log
[mysqld]
port = 3306
# MySQL服务端默认监听的TCP/IP端口

socket = /home/mysql/mysql-8.0.20/socket/mysql.sock
# 用于本地连接的Unix套接字文件存放路径

pid_file = /home/mysql/mysql-8.0.20/tmp/mysql.pid
# 进程ID文件存放路径

basedir = /home/mysql/mysql-8.0.20
# MySQL软件安装路径

datadir = /home/mysql/mysql-8.0.20/data
# MySQL数据文件存放路径

tmpdir = /home/mysql/mysql-8.0.20/tmp
# MySQL临时文件存放路径

character_set_server = utf8mb4
# MySQL服务端字符集

collation_server = utf8mb4_general_ci
# MySQL服务端校对规则

default-storage-engine = InnoDB
# 设置默认存储引擎为InnoDB

autocommit = OFF
# 默认为ON,设置为OFF,关闭事务自动提交

transaction_isolation = READ-COMMITTED

event_scheduler = ON 
# 开启事件调度器event_scheduler

lower_case_table_names = 1
# 库名、表名是否区分大小写。默认为0,设置1,不区分大小写,创建的表、数据库都以小写形式存放磁盘。

########################################
#                                      #
#       Network & Connection           #
#                                      #
########################################
max_connections = 1000
# MySQL允许的最大并发连接数,默认值151,如果经常出现Too Many Connections的错误提示,则需要增大此值。

max_user_connections = 1000
# 每个数据库用户的最大连接,(同一个账号能够同时连接到mysql服务的最大连接数),默认为0,表示不限制。

back_log = 500
# MySQL监听TCP端口时设置的积压请求栈大小,默认50+(max_connections/5),最大不超过900

max_connect_errors = 10000
# 每个主机的连接请求异常中断的最大次数。对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。

interactive_timeout = 28800
# 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。默认值:28800秒(8小时)

wait_timeout = 28800
# 服务器关闭非交互连接之前等待活动的秒数。默认值:28800秒(8小时)
# 指定一个请求的最大连接时间,当MySQL连接闲置超过一定时间后将会被强行关闭。对于4GB左右内存的服务器来说,可以将其设置为5~10。
# 如果经常出现Too Many Connections的错误提示,或者show processlist命令发现有大量sleep进程,则需要同时减小interactive_timeout和wait_timeout值。

connect_timeout = 28800
# 在获取连接时,等待握手的超时秒数,只在登录时生效。主要是为了防止网络不佳时应用重连导致连接数涨太快,一般默认即可。

open_files_limit = 5000
# mysqld能打开文件的最大个数,默认最小1024,如果出现too mant open files之类的就需要增大该值。

max_allowed_packet = 256M
# 指定在网络传输中一次消息传输量的最大值。系统默认值 为1MB,最大值是1GB,必须设置1024的倍数。

########################################
#                                      #
#          Thread & Buffer             #
#                                      #
########################################
sort_buffer_size = 2M
# 排序缓冲区大小,connection级参数,默认大小为2MB。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引,其次可以尝试增大该值。

read_buffer_size = 160M
# 顺序读缓冲区大小,connection级参数,该参数对应的分配内存是每连接独享。对表进行顺序扫描的请求将分配一个读入缓冲区。

read_rnd_buffer_size = 160M
# 随机读缓冲区大小,connection级参数,该参数对应的分配内存是每连接独享。默认值256KB,最大值4GB。当按任意顺序读取行时,将分配一个随机读缓存区。

join_buffer_size = 320M
# 联合查询缓冲区大小,connection级参数,该参数对应的分配内存是每连接独享。

bulk_insert_buffer_size = 64M   
# 批量插入数据缓存大小,可以有效提高插入效率,默认为8M

thread_cache_size = 8
# 服务器线程缓冲池中存放的最大连接线程数。默认值是8,断开连接时如果缓存中还有空间,客户端的线程将被放到缓存中,当线程重新被请求,将先从缓存中读取。
# 根据物理内存设置规则如下:1G  —> 8,2G  —> 16,3G  —> 32,大于3G  —> 64

thread_stack = 256K
# 每个连接被创建时,mysql分配给它的内存。默认192KB,已满足大部分场景,除非必要否则不要动它,可设置范围128KB~4GB。

# query_cache_type = 0
# 关闭查询缓存

# query_cache_size = 0
# 查询缓存大小,在高并发,写入量大的系统,建议把该功能禁掉。

# query_cache_limit = 4M    
# 指定单个查询能够使用的缓冲区大小,缺省为1M

tmp_table_size = 1024M
# MySQL的heap(堆积)表缓冲大小,也即内存临时表,默认大小是 32M。如果超过该值,则会将临时表写入磁盘。在频繁做很多高级 GROUP BY 查询的DW环境,增大该值。
# 实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。

max_heap_table_size = 1024M
# 用户可以创建的内存表(memory table)的大小,这个值用来计算内存表的最大行数值。

table_definition_cache = 400
# 表定义缓存区,缓存frm文件。表定义(global)是全局的,可以被所有连接有效的共享。

table_open_cache = 1000
# 所有SQL线程可以打开表缓存的数量,缓存ibd/MYI/MYD文件。 打开的表(session级别)是每个线程,每个表使用。

table_open_cache_instances = 4
# 对table cache 能拆成的分区数,用于减少锁竞争,最大值64.


skip-external-locking
#skip-locking 
# 避免MySQL的外部锁定,减少出错几率,增强稳定性。

skip-name-resolve 
# 禁止MySQL对外部连接进行DNS解析,消除MySQL进行DNS解析。如果开启该选项,所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!

#skip-networking 
# 不允许CP/IP连接,只能通过命名管道(Named Pipes)、共享内存(Shared Memory)或Unix套接字(Socket)文件连接。
# 如果Web服务器以远程连接方式访问MySQL数据库服务器,则不要开启该选项,否则无法正常连接!
# 适合应用和数据库共用一台服务器的情况,其他客户端无法通过网络远程访问数据库

########################################
#                                      #
#                 Logs                 #
#                                      #
########################################

###################     Slow Log   ######################
slow_query_log = ON
# 开启慢查询日志

slow_query_log_file = /home/mysql/mysql-8.0.20/logs/slow_log/slow.log
# 慢查询日志存放路径

long_query_time = 10
# 超过10秒的查询,记录到慢查询日志,默认值10

log_queries_not_using_indexes = ON
# 没有使用索引的查询,记录到慢查询日志,可能引起慢查询日志快速增长

log_slow_admin_statements = ON
# 执行缓慢的管理语句,记录到慢查询日志
# 例如 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE.

###################     Error Log   ####################
log_error = /home/mysql/mysql-8.0.20/logs/error_log/error.log
# 错误日志存放路径

log_error_verbosity = 2
# 全局动态变量,默认3,范围:1~3
# 表示错误日志记录的信息,1:只记录error信息;2:记录error和warnings信息;3:记录error、warnings和普通的notes信息

########################################
#                                      #
#           Replication                #
#                                      #
########################################

###################     Bin Log    ######################
server_id = 6
# 数据库服务器ID

log_bin = /home/mysql/mysql-8.0.20/logs/bin_log/binlog
# 二进制日志存放路径

log_bin_index = /home/mysql/mysql-8.0.20/logs/bin_log/binlog.index
# 同binlog,定义binlog的位置和名称

binlog_format = row
# binlog格式,复制有3种模式STATEMENT,ROW,MIXED

# expire_logs_days = 10
# 只保留最近10天的binlog日志

max_binlog_size = 50M
# 每个binlog日志文件的最大容量

binlog_cache_size = 2M
# 每个session分配的binlog缓存大小
# 事务提交前产生的日志,记录到Cache中;事务提交后,则把日志持久化到磁盘

log_slave_updates = ON
# 开启log_slave_updates,从库的更新操作记录进binlog日志

sync_binlog = 1
# sync_binlog=0(默认),事务提交后MySQL不刷新binlog_cache到磁盘,而让Filesystem自行决定,或者cache满了才同步。
# sync_binlog=n,每进行n次事务提交之后,MySQL将binlog_cache中的数据强制写入磁盘。

binlog_rows_query_log_events = ON
# 将row模式下的sql语句,记录到binlog日志,默认是0(off)

[mysqldump]                        
max_allowed_packet = 256M
quick
# mysqldump导出大表时很有用,强制从服务器查询取得记录直接输出,而不是取得所有记录后将它们缓存到内存中。

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
#ledir = /app/mysql/bin
# 包含mysqld程序的软件安装路径,用该选项来显式表示服务器位置。
log_error = /home/mysql/mysql-8.0.20/logs/error_log/error.log

 

4、执行初始化命令

sudo /home/mysql/mysql-8.0.20/bin/mysqld --defaults-file=/home/mysql/mysql-8.0.20/conf/my.cnf --initialize --user=mysql --basedir=/home/mysql/mysql-8.0.20 --datadir=/home/mysql/mysql-8.0.20/data --log-error=/home/mysql/mysql-8.0.20/logs/error_log/error.log

注意:执行完后需要查看log中随机生成的密码

 

5、修改support-files下的mysql.server文件

  basedir=MySQL的home路径

       datadir=MySQL的home路径/data

6、sudo mysql.server start

7、使用随机生成的密码登录

8、修改密码

alter user 'root'@'localhost' identified by '123456';

9、在/usr/lib/systemd/system添加mysql.service,内容如下

[Unit]
Description=Mysql
Documentation=man:mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
User=mysql # 此用户必须存在,即为启动mysql的用户
Group=mysql
Type=forking
ExecStart=/home/mysql/mysql-8.0.20/bin/mysqld 
--defaults-file=/home/mysql/mysql-8.0.20/conf/my.cnf
--basedir=/home/mysql/mysql-8.0.20
--datadir=/home/mysql/mysql-8.0.20/data
--plugin-dir=/home/mysql/mysql-8.0.20/lib/plugin
--user=mysql
--log-error=/home/mysql/mysql-8.0.20/log/mysql.err
--open-files-limit=65000
--pid-file=/home/mysql/mysql-8.0.20/tmp/mysql.pid
--socket=/home/mysql/mysql-8.0.20/socket/mysql.sock
--port=3306 #根据自己配置,编写启动命令 ExecStop=/home/mysql/mysql-8.0.20/bin/mysqladmin shutdown -p123456 PrivateTmp=false [Install] WantedBy=multi-user.target

 

或者

[Unit]
Description=Mysql
Documentation=man:mysqld
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
User=mysql # 此用户必须存在,即为启动mysql的用户
Group=mysql
Type=forking
PIDFile=/home/mysql/mysql-8.0.20/tmp/mysql.pid
ExecStart=/home/mysql/mysql-8.0.20/support-files/mysql.server start
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=false
 
[Install]
WantedBy=multi-user.target

10、保存退出后,重载systemctl;systemctl daemon-reload

11、systemctl enable mysql 设置开机自启动

        systemctl start mysql

        systemctl stop mysql

        systemctl status mysql

        systemctl restart mysql

 

标签:8.0,20,log,tar,MySQL,xz,mysql8.0,mysql,home
来源: https://www.cnblogs.com/xing-29391/p/15489015.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有