截图看看
或者使用mariadb代替mysql
用docker吧,反正不是生产环境
源码安装
或者
直接用docker
-
官方下载 Mysql 8.2
-
解压到需要的文件夹去 (建议放到 /opt/mysql/mysql8)
-
建立 mysql 的用户与组 (groupadd mysql && useradd -r -g mysql mysql)
-
创建软链接到系统中,后继服务与配置中会使用到
cd /usr/local && sudo ln -s /opt/mysql/mysql8 mysql8
cd /usr/bin && sudo ln -s /opt/mysql/mysql8/bin/mysql mysql8
-
编辑或创建 my8.cnf 就放在 /opt/mysql/mysql8/my8.cnf 内容如下:
[mysqld]
#开发测试环境关闭 binlog
skip-log-bin
#skip-grant-tables
server-id=1
#所有地址都能访问
bind-address=0.0.0.0
#设置端口为3307,为其它版本数据库与默认安装数据库留位置
port=3307
#用户
user=mysql
#语句自动提交
autocommit=1
#编码
character_set_server=utf8mb4
#连接数(开发测试环境不重要
max_connections=2000
#max_connect_errors =10
#innodb_flush_log_at_trx_commit=0
#join_buffer_size=4M
#tmp_table_size=64M
#interactive_timeout=600
#read_rnd_buffer_size=8388608
#read_buffer_size = 4194304
#sort_buffer_size =4194304
#数据库类型
default-storage-engine=INNODB
innodb_page_size = 16384
#缓存与性能关系巨大,一般设置为总内存的 1/4 ,调优具体值得看实际作业需求
innodb_buffer_pool_size=4G
#innodb_lru_scan_depth=2000
#innodb_io_capacity_max = 8000
#innodb_io_capacity = 4000
#innodb_file_format = Barracuda
#innodb_flush_neighbors = 0
#在初始化前,得做一个软链接映射数据库文件夹,主要是不想将所有东西都安装到系统里
basedir=/usr/local/mysql8
#数据库存放的文件夹
datadir=(自己给一个绝对位置,注意文件夹的所属用户)
#连接文件,进程文件与错误文件,别折腾了,和数据库放在一起
socket=(自己给一个绝对位置,注意文件夹的所属用户)/mysql8.sock
pid-file=(自己给一个绝对位置,注意文件夹的所属用户)/mysql8.pid
log-error=(自己给一个绝对位置,注意文件夹的所属用户)/mysql8_err.log
#创建数据库时,所有的表名不区分大小写
lower_case_table_names = 1[mysql]
[client]
#客户端的连接文件与服务端一样就行
socket=(自己给一个绝对位置,注意文件夹的所属用户)/mysql8.sock
character_set_client=utf8mb4 -
创建服务文件 mysql8.service,确认无误后放到 /etc/systemd/system 里边去, 内容如下
[Unit]
Description=MySQL8 Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
#用户
User=mysql
#用户组
Group=mysql
Type=forking
PermissionsStartOnly=true
PIDFile=(my8.cnf 配置文件中的一样路径)/mysqld8.pid
#前边软链接的文件路径 /usr/local/mysql8
#启动时连接指定的cnf配置,不去 /etc 下找,免去冲突
#--defaults-file=/usr/local/mysql8/my8.cnf
ExecStart=/usr/local/mysql8/bin/mysqld --defaults-file=/usr/local/mysql8/my8.cnf --daemonize --pid-file=(my8.cnf 配置文件中的一样路径)/mysqld8.pid
TimeoutSec=10
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755 -
创建数据库存放的文件夹并同步给文件夹修改所属用户 chown -R mysql.mysql (mysql 与 数据库文件夹)
-
进入数据库安装程序的 bin 路径准备初始化数据库.
cd /opt/mysql/mysql8/bin
./mysqld --defaults-file=/opt/mysql/mysql8/my8.cnf --basedir=/usr/local/mysql8 --datadir=(自己建的数据库路径) --user=mysql --initialize
初始化完成后,去查看配置文件中 log-error=(自己给一个绝对位置,注意文件夹的所属用户)/mysql8_err.log,里边有初始密码,localhost: XXXXXXX 就是密码
-
初始化后,测试一下是否能通过服务启动 systemctl start mysql8 一般没有问题的.不建议设置为自动启动,浪费资源.
-
综上,安装其它版本的mysql也就是大同小异,注意一下端口与路径就行了.
听回复最长的
这个回复真专业。。。
使用apt-get instal mysql-server mysql-client mysql-common安装mysql显示没有可安装候选,然后按照官网的去配置mysql8.0.31的时候出现了无法连接mysql