ubuntu 26下安装mysql8.0.45
环境:
OS:ubuntu 26.04
mysql:8.0.45
1.mysql介质下载
cd /soft
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.45-linux-glibc2.17-x86_64.tar.xz
2.创建mysql用户和用户组(取消,系统已经自动创建了)
root@ubuntu-mysql:/soft# groupadd mysql
root@ubuntu-mysql:/soft# useradd mysql -s /sbin/nologin -M -g mysql
3.创建安装目录
root@ubuntu-mysql:/soft# mkdir -p /home/middle
4.下载解压二进制文件,解压,进入解压出来的文件
root@ubuntu-mysql:/soft# cd /soft
root@ubuntu-mysql:/soft# tar -xvf mysql-8.0.45-linux-glibc2.17-x86_64.tar.xz
root@ubuntu-mysql:/soft# mv mysql-8.0.45-linux-glibc2.17-x86_64 /home/middle/mysql8
5.在mysql主目录下建立相应的目录
[root@localhost mysql8]#cd /home/middle/mysql8
[root@localhost mysql8]#mkdir data ##数据文件目录
[root@localhost mysql8]#mkdir conf ## 配置文件目录
[root@localhost mysql8]#mkdir -p mysqllog/relaylog ##主从环境relaylog
[root@localhost mysql8]#mkdir -p mysqllog/logfile ##错误日志文件
[root@localhost mysql8]#mkdir -p mysqllog/binlog ##binlog文件
[root@localhost mysql8]#mkdir -p secure_file ##secure_file_priv参数指定路
6.在conf目录下创建配置文件my.cnf,配置文件内容如下
[mysqld]
port=3306
server-id=1
basedir=/home/middle/mysql8
datadir=/home/middle/mysql8/data
max_connections = 5000
##这里不需要特别指定字符集,默认就是utf8bm4的,排序字符集utf8mb4_0900_ai_ci比utf8mb4_general_ci性能好
##character_set_server=utf8mb4
##collation-server=utf8mb4_0900_ai_ci
##init_connect='SET collation_connection = utf8mb4_0900_ai_ci'
##init_connect='SET NAMES utf8mb4'
interactive_timeout=86400
wait_timeout=86400
skip-external-locking
key_buffer_size= 128M
max_allowed_packet=32M
##query_cache_size=32M
read_buffer_size=2M
sort_buffer_size=1M
join_buffer_size= 128M
innodb_file_per_table= 1
innodb_open_files= 5000
innodb_buffer_pool_size= 4G
innodb_write_io_threads= 16
innodb_read_io_threads= 16
innodb_thread_concurrency = 0
innodb_purge_threads= 1
innodb_flush_log_at_trx_commit= 2
innodb_log_buffer_size=16M
##准备废弃innodb_log_file_size和innodb_log_files_in_group,使用innodb_redo_log_capacity代替
##innodb_log_file_size=512M
##innodb_log_files_in_group= 5
innodb_redo_log_capacity = 2GB
innodb_max_dirty_pages_pct= 90
innodb_lock_wait_timeout= 120
bulk_insert_buffer_size= 64M
myisam_sort_buffer_size=64M
myisam_max_sort_file_size= 1G
##myisam_repair_threads= 1
log_bin_trust_function_creators=1
event_scheduler=1
max_binlog_size=100M
binlog_format=row
log-bin=/home/middle/mysql8/mysqllog/binlog/binlog.bin
slow_query_log=on
slow_query_log_file=/home/middle/mysql8/mysqllog/logfile/slow-query.log
long_query_time=1
##log_queries_not_using_indexes=on
log-error=/home/middle/mysql8/mysqllog/logfile/mysql-err.log
binlog_cache_size=4MB
##skip-host-cache
skip-name-resolve
##已经没有该参数了expire_logs_days=7
##7*24*60*60=604800 7天
binlog_expire_logs_seconds=604800
##skip_replica_start
##skip-slave-start
skip_replica_start
relay-log-index=/home/middle/mysql8/mysqllog/relaylog/slave-relay-bin.index
relay-log=/home/middle/mysql8/mysqllog/relaylog/relaylog-binlog
replicate-ignore-db=information_schema,performance_schema,sys
replica_net_timeout=60
early-plugin-load=""
explicit_defaults_for_timestamp=true
log_replica_updates=1
##log_slave_updates=1
gtid_mode=ON
enforce_gtid_consistency = ON
lower_case_table_names=1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO'
secure_file_priv=/home/middle/mysql8/secure_file
##default_authentication_plugin=mysql_native_password
authentication_policy=mysql_native_password
[client]
port = 3306
default-character-set = utf8mb4
[mysqldump]
quick
max_allowed_packet = 32M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
7.修改mysql目录权限
[root@localhost opt]#cd /home/middle
[root@localhost opt]#chown -R mysql:mysql ./mysql8
8.初始化数据库
--lower-case-table-names=1 ##不区分大小写
root@localhost:/home/middle/mysql8/bin#cd /home/middle/mysql8/bin
root@localhost:/home/middle/mysql8/bin#./mysqld --initialize --lower-case-table-names=1 --user=mysql --basedir=/home/middle/mysql8 --datadir=/home/middle/mysql8/data
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决办法
apt install numactl libaio1t64 -y
cd /usr/lib/x86_64-linux-gnu
ln -s libaio.so.1t64 libaio.so.1
ldconfig
再次执行
root@ubuntu-mysql-test-35:/home/middle/mysql8/bin# ./mysqld --initialize --lower-case-table-names=1 --user=mysql --basedir=/home/middle/mysql8 --datadir=/home/middle/mysql8/data
2026-09-22T09:11:13.520947Z 0 [System] [MY-013169] [Server] /home/middle/mysql8/bin/mysqld (mysqld 8.0.45) initializing of server in progress as process 2701
2026-09-22T09:11:13.531873Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2026-09-22T09:11:13.932285Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2026-09-22T09:11:17.953864Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: wh6aqgHeW;U1
9.启动
[root@localhost opt]#echo>/home/middle/mysql8/mysqllog/logfile/mysql-err.log
[root@localhost opt]#cd /home/middle
[root@localhost opt]#chown -R mysql:mysql ./mysql8
[root@localhost middle]# /home/middle/mysql8/bin/mysqld_safe --defaults-file=/home/middle/mysql8/conf/my.cnf --user=mysql &
10.登陆mysql并修改密码
root@ubuntu-mysql-test-35:/home/middle# /home/middle/mysql8/bin/mysql -h localhost -uroot -P3306 -p
/home/middle/mysql8/bin/mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
解决办法:
root@ubuntu-mysql-test-35:/home/middle# find / -name libncurses.so*
/usr/lib/x86_64-linux-gnu/libncurses.so.6
/usr/lib/x86_64-linux-gnu/libncurses.so.6.6
root@ubuntu-mysql-test-35:/home/middle# find / -name libtinfo.so*
/usr/lib/x86_64-linux-gnu/libtinfo.so.6.6
/usr/lib/x86_64-linux-gnu/libtinfo.so.6
/snap/core24/1643/usr/lib/x86_64-linux-gnu/libtinfo.so.6
/snap/core24/1643/usr/lib/x86_64-linux-gnu/libtinfo.so.6.4
建立软连接
ln -s /usr/lib/x86_64-linux-gnu/libncurses.so.6.6 /usr/lib/x86_64-linux-gnu/libncurses.so.5
ln -s /usr/lib/x86_64-linux-gnu/libtinfo.so.6.6 /usr/lib/x86_64-linux-gnu/libtinfo.so.5
继续登录
/home/middle/mysql8/bin/mysql -h localhost -uroot -P3306 -p
修改密码
alter user 'root'@'localhost' identified by 'mysql';
flush privileges;
11.重启
停掉
su - root
/home/middle/mysql8/bin/mysqladmin -h localhost -uroot -P3306 -p shutdown
启动
/home/middle/mysql8/bin/mysqld_safe --defaults-file=/home/middle/mysql8/conf/my.cnf --user=mysql &
12.正常登录
/home/middle/mysql8/bin/mysql -h localhost -uroot -P3306 -p
13.查看默认的字符集
mysql> SHOW VARIABLES LIKE 'character_set_server';
+----------------------+---------+
| Variable_name | Value |
+----------------------+---------+
| character_set_server | utf8mb4 |
+----------------------+---------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'collation_server';
+------------------+--------------------+
| Variable_name | Value |
+------------------+--------------------+
| collation_server | utf8mb4_0900_ai_ci |
+------------------+--------------------+
1 row in set (0.00 sec)
14.设置开启自启动
设置开机自启动
在/etc/systemd/system目录下创建 mysql.service 文件
root下操作
vi /etc/systemd/system/mysql.service
[Unit]
Description=mysql
[Service]
User=mysql
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/home/middle/mysql8/bin/mysqld_safe --defaults-file=/home/middle/mysql8/conf/my.cnf
[Install]
WantedBy=multi-user.target
设置开机自启
systemctl enable mysql
systemctl daemon-reload
尝试启动
systemctl start mysql
systemctl status mysql
systemctl stop mysql
systemctl status mysql
可以的话进行系统reboot,看是否会自动启动
备份
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-30/binary/tarball/percona-xtrabackup-8.0.35-30-Linux-x86_64.glibc2.17.tar.gz
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-36/binary/tarball/percona-xtrabackup-8.0.35-36-Linux-x86_64.glibc2.28.tar.gz
##############glibc2.17版本
tar -xvf percona-xtrabackup-8.0.35-30-Linux-x86_64.glibc2.17.tar.gz
mv percona-xtrabackup-8.0.35-30-Linux-x86_64.glibc2.17 /opt/xtrabackup-8.0.35-30
/opt/xtrabackup-8.0.35-30/bin/xtrabackup --defaults-file=/home/middle/mysql8/conf/my.cnf --user=root --password=yeemiao3040 -P3306 --socket=/tmp/mysql.sock --no-version-check --compress-threads=4 --backup --stream=xbstream --parallel=4 | gzip > /opt/xtrabackup_file/mybak20260923.xb.gz
##############glibc2.28版本
tar -xvf percona-xtrabackup-8.0.35-36-Linux-x86_64.glibc2.28.tar.gz
mv percona-xtrabackup-8.0.35-36-Linux-x86_64.glibc2.28 /opt/percona-xtrabackup-8.0.35-36
root@ubuntu-mysql-test-35:/soft# /opt/percona-xtrabackup-8.0.35-36/bin/xtrabackup --defaults-file=/home/middle/mysql8/conf/my.cnf --user=root --password=yeemiao3040 -P3306 --socket=/tmp/mysql.sock --no-version-check --compress-threads=4 --backup --stream=xbstream --parallel=4 | gzip > /opt/xtrabackup_file/mybak20260923_01.xb.gz
/opt/percona-xtrabackup-8.0.35-36/bin/xtrabackup: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
解决办法:
wget http://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb
dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb
浙公网安备 33010602011771号