Ubuntu安装Mysql8

因每个人的机器不同,可能出现的问题如下
1.该案例中可能执行某些命令时会涉及到权限问题,可在命令前添加 sudo 后重试;
2.某些文件或文件夹可能也会需要权限,可以尝试修改权限后重试 sudo chmod 777 文件或文件夹路径

一、下载资源包

  • 进入 /usr/local/目录
cd /usr/local/
  • 在 /usr/local/ 下执行,下载资源包
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

其他版本下载连接可以自行官网获取,亦或者可以下载好之后上传到服务器也可以
mysql

  • 解压
tar -Jxvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

二、配置

2.1. 文件夹重命名

 mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql8

2.2. 添加环境变量

vim /etc/profile

在最下边追加,这个路径按你实际路径来,你可以跟我装的不一样

export PATH=$PATH:/usr/local/mysql8/bin  

重载环境变量

source /etc/profile

2.3 准备安装

查看版本

mysql --version

有报错就先执行下面的命令

sudo apt-get install libtinfo5

2.4 创建用户组、用户

需要进入 /usr/local

 cd /usr/local
groupadd mysql

创建用户:useradd(-r 创建系统用户,-g 指定用户组)

useradd -r -g mysql mysql

2.5 设置数据目录

mkdir -p /data/mysql8_data

赋予权限:

更改属主和数组

chown -R mysql:mysql /data/mysql8_data

更改模式 只有具有 root 权限的用户和 mysql 用户可以读取、写入和执行

chmod -R 700 /data/mysql8_data

2.6 准备配置文件

在 /usr/local/etc/ 下创建 my.cnf 配置文件用于初始化 MySQL 数据库

vim /usr/local/etc/my.cnf

文件内容如下(文件中的配置自己选择是否配置,不配置注释掉就好):

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
# 客户端使用的端口号
port=3306
# 客户端连接的 socket 路径
socket=/tmp/mysql.sock
[mysqld]
# 服务端使用的端口号
port=3306
# 服务器 ID
server-id=3306
# MySQL 运行用户
user=mysql
# 日志时间系统时间
log_timestamps=SYSTEM
# 默认时区东八区
default-time_zone='+8:00'
# 服务器连接的 socket 路径
socket=/tmp/mysql.sock
# MySQL 安装目录
basedir=/usr/local/mysql8
# 数据存放目录
datadir=/data/mysql8_data/mysql
# 开启二进制日志功能
log-bin=/data/mysql8_data/mysql/mysql-bin
# InnoDB 数据文件存放目录
innodb_data_home_dir=/data/mysql8_data/mysql
# InnoDB 日志文件存放目录
innodb_log_group_home_dir=/data/mysql8_data/mysql
# MySQL 错误日志文件路径
log-error=/data/mysql8_data/mysql/mysql.log
# 存放 MySQL 进程 ID 的文件路径
pid-file=/data/mysql8_data/mysql/mysql.pid
# 表名大小写不敏感
lower_case_table_names=1
# 服务端字符集
character-set-server=utf8mb4
# 自动提交所有事务
autocommit=1
# 跳过排它锁定
skip-external-locking
# 键缓存大小
key_buffer_size=256M
# 允许的最大数据包大小
max_allowed_packet=1M
# 表缓存
table_open_cache=1024
# 排序缓存大小
sort_buffer_size=4M
# 网络缓冲区长度
net_buffer_length=8K
# 读取缓冲区大小
read_buffer_size=4M
# 随机读取缓冲区大小
read_rnd_buffer_size=512K
# MyISAM 排序缓冲区大小
myisam_sort_buffer_size=64M
# 线程缓存大小
thread_cache_size=128
# 临时表大小
tmp_table_size=128M
# 启用显式默认时间戳
explicit_defaults_for_timestamp=true
# 最大连接数
max_connections=500
# 连接错误最大数量
max_connect_errors=100
# 打开文件限制
open_files_limit=65535
# 二进制日志格式
binlog_format=mixed
# 二进制日志过期时间(秒)
binlog_expire_logs_seconds=864000
# 创建表时使用的默认存储引擎
default_storage_engine=InnoDB
# InnoDB 数据文件路径设置
innodb_data_file_path=ibdata1:10M:autoextend
# InnoDB 缓冲池大小
innodb_buffer_pool_size=1024M
# InnoDB 日志文件大小
innodb_log_file_size=256M
# InnoDB 日志缓冲区大小
innodb_log_buffer_size=8M
# InnoDB 每次提交时刷新日志
innodb_flush_log_at_trx_commit=1
# InnoDB 加锁等待超时时间(秒)
innodb_lock_wait_timeout=50
# 事务隔离级别为读已提交
transaction-isolation=READ-COMMITTED
[mysqldump]
# 快速导出数据
quick
# 允许的最大数据包大小
max_allowed_packet=16M
[myisamchk]
# 键缓存大小
key_buffer_size=256M
# 排序缓冲区大小
sort_buffer_size=4M
# 读取缓冲区大小
read_buffer=2M
# 写入缓冲区大小
write_buffer=2M
[mysqlhotcopy]
# 交互式超时时间
interactive-timeout

三、安装与启动

3.1 初始化

  • 需要进入 /usr/local/mysql8/bin,若添加了 PATH 变量可忽略。

初始化命令:注意文件夹名称。

  • –defaults-file:指定配置文件(要放在–initialize 前面)
  • –user: 指定用户
  • –basedir:指定安装目录
  • –datadir:指定初始化数据目录
  • –intialize-insecure:初始化无密码(否则生成随机密码)
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure

3.2 启动Mysql

安全后台启动 MySQL

# 完整命令
/usr/local/mysql8/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

# 若添加了PATH变量,可省略如下
mysqld_safe --defaults-file=/usr/local/etc/my.cnf &

查看mysql是否启动(可省略)

ps -ef|grep mysql

3.3 登录并修改密码

mysql -u root --skip-password

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

设置密码永不过期(本地)

alter user 'root'@'localhost' password expire never;

刷新权限

FLUSH PRIVILEGES;

3.4 开启远程连接

该操作要在登录mysql后执行

选择 mysql 数据库,查看当前用户

USE mysql;

host 字段表示可访问当前数据库的主机,目前仅本地可访问。

SELECT user,host,plugin,authentication_string FROM user;

更新为可以远程访问

update user set host='%' where user='root';

再次查看用户数据

select host, user from user;

image.png
此时HOST已经变成了%

最后使用更改生效

FLUSH PRIVILEGES;

退出mysql控制台

exit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值