Ubuntu mysql8 tar.xz 安装

下载安装包 mysql-8.0.44-linux-glibc2.28-x86_64.tar.xz

https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.44-linux-glibc2.28-x86_64.tar.xz

sudo tar -xvf mysql-8.0.44-linux-glibc2.28-x86_64.tar.xz

sudo mv mysql-8.0.44-linux-glibc2.28-x86_64 /usr/local/

cd /usr/local/mysql

sudo mkdir data tmp log

设置权限

sudo groupadd -r mysql
sudo useradd -r -s /sbin/nologin -g mysql -d /usr/local/mysql mysql

sudo chown -R mysql:mysql /usr/local/mysql/data
sudo chmod -R 700 /usr/local/mysql/data

sudo chown -R mysql:mysql /usr/local/mysql/log
sudo chmod -R 755 /usr/local/mysql/log

sudo chown -R mysql:mysql /usr/local/mysql/tmp
sudo chmod -R 755 /usr/local/mysql/tmp

sudo chown mysql:mysql /usr/local/mysql
sudo chmod 755 /usr/local/mysql 

设置/etc/profile

sudo vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
source /etc/profile
mysql --version

编写配置

sudo vim /etc/my.cnf

配置内容如下

[client]
port = 3306
socket = /usr/local/mysql/tmp/mysqld.sock
default-character-set = utf8mb4

[mysqld]
# 基础配置(保留你的核心项)
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
tmpdir  = /usr/local/mysql/tmp
socket = /usr/local/mysql/tmp/mysqld.sock
pid-file = /usr/local/mysql/log/mysql.pid
log_error = /usr/local/mysql/log/error.log
slow_query_log_file = /usr/local/mysql/log/slow.log
explicit_defaults_for_timestamp=true
lower_case_table_names=1

# 字符集(MySQL8默认utf8mb4,显式配置避免乱码)
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'

# 核心性能优化(1核2G)
user = mysql
bind-address = 0.0.0.0  # 允许远程连接(按需关闭)
skip-name-resolve       # 关闭DNS解析,提升连接速度
back_log = 64            # 连接请求队列大小
max_connections = 100    # 最大连接数(低配避免内存溢出)
max_connect_errors = 100000

# 内存优化(关键:总占用控制在1G内)
table_open_cache = 256
table_definition_cache = 256
open_files_limit = 65535
tmp_table_size = 64M
max_heap_table_size = 64M
join_buffer_size = 1M
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 1M

# InnoDB核心(1核2G)
default-storage-engine = InnoDB
innodb_buffer_pool_size = 1G    # 内存的50%(2G内存分配1G)
innodb_buffer_pool_instances = 1 # 单实例即可
innodb_log_file_size = 256M     # 日志文件大小(不超过4G)
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 2  # 性能优先(每秒刷盘,允许1秒数据丢失)
innodb_flush_method = O_DIRECT    # 绕过系统缓存,提升IO效率
innodb_file_per_table = 1         # 每张表独立ibd文件
innodb_io_capacity = 100         # 适配普通HDD/低性能SSD
innodb_autoextend_increment = 64
innodb_lock_wait_timeout = 10    # 锁等待超时时间

# 日志优化
slow_query_log = 1                # 开启慢查询日志
long_query_time = 1               # 超过1秒的查询记录
log_queries_not_using_indexes = 1 # 记录未使用索引的查询
log_slow_admin_statements = 1     # 记录管理类慢查询(如ALTER)
general_log = 0                   # 关闭通用日志(生产环境禁用)

# 其他优化
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_allowed_packet = 64M          # 最大数据包大小
wait_timeout = 600                # 空闲连接超时
interactive_timeout = 600
skip-external-locking            # 关闭外部锁

安装 libaio1

ls /usr/lib/x86_64-linux-gnu/libaio.so.1 #查看未安装时才安装
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 先备份原有源文件(防止出错)
# 清空原有内容,写入官方源
sudo tee /etc/apt/sources.list > /dev/null <<EOF
deb http://archive.ubuntu.com/ubuntu/ focal main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates main universe restricted multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main universe restricted multiverse
deb http://security.ubuntu.com/ubuntu/ focal-security main universe restricted multiverse
EOF

sudo apt update

sudo apt install -y libaio1 libaio-dev

初始化mysqld

sudo ./mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql 

设置启动服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

vim /usr/lib/systemd/system/mysqld.service

mysqld.service 内容如下

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
Type=forking
User=mysql
Group=mysql
# 调用 mysql.server 启动/停止
ExecStart=/etc/init.d/mysql start
ExecStop=/etc/init.d/mysql stop
ExecReload=/etc/init.d/mysql reload
# 重启策略
Restart=on-failure
RestartSec=5
# 限制资源
LimitNOFILE=65535
PrivateTmp=true

修改 mysql.server

vim /usr/local/mysql/support-files/mysql.server
# 原内容(默认是空/默认路径)
basedir=
datadir=

# 修改后(适配你的安装路径)
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data


systemctl daemon-reload

# 启动服务
systemctl start mysqld

# 检查服务状态
systemctl status mysqld

# 设置开机自启
systemctl enable mysqld

# 停止服务(测试)
systemctl stop mysqld

查看初始密码

cd /usr/local/mysql/log
sudo cat error.log

在这里插入图片描述

登录mysql & 设置秘密

mysql -uroot -p
#更新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
flush privileges;
#开启远程
#grant all privileges  on *.* to root@'%' identified by '123456';
show databases;
use mysql;
update user set host="%" where user='root';
flush privileges;
GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
exit;

搞定了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值