ubuntu安装mysql8
二进制安装
1# 列出所有已安装的包:
2apt list --installed
3# 查询系统是否安装了mariadb:
4sudo dpkg -l | grep maria
5
6# 安装 mysql 依赖
7sudo apt install libaio1 libaio-dev libncurses5 libncurses5-dev
8
9# 下载 mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz,然后解压到 /data
10tar -xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz -C /data
11
12# 创建软连接
13ln -s /data/mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
14
15# 创建mysql 用户和组,并设置禁止登陆系统
16groupadd mysql
17useradd -r -g mysql -s /bin/false mysql
18
19# 创建数据目录,并修改数据目录的用户及用户组
20mkdir -p /data/mysql-data
21chown -R mysql:mysql /data/mysql-data
22
23# 初始化数据库(任选其一,本文以无密码初始化方式)
24# 有密码初始化(会在控制台输出临时密码,官方推荐该方式):
25mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql-data --initialize
26# 无密码初始化(方便,但密码自行需要修改):
27mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql-data --initialize-insecure
配置
MySQL启动时读取配置文件的顺序,按照以下优先级(数字小的优先级高):
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/local/mysql/etc/my.cnf
- ~/.my.cnf
若没有设置使用指定目录下的my.cnf文件,或者没有读取到默认的配置文件,则表示mysql启动时并没有加载配置文件,而是使用的默认配置。
my.cnf 最基础的配置示例
新建/etc/my.cnf,内容如下:
1[mysql]
2default-character-set=utf8mb4
3
4[client]
5port=3306
6default-character-set=utf8mb4
7#socket=/var/lib/mysql/mysql.sock
8
9[mysqld]
10user=mysql
11port=3306
12basedir=/usr/local/mysql
13datadir=/data/mysql-data
14character-set-server=utf8mb4
15#socket=/var/lib/mysql/mysql.sock
16# 如果是开发环境,下面的配置可以有效降低mysql的内存占用
17performance_schema_max_table_instances=400
18table_definition_cache=400
19table_open_cache=256
20performance_schema=off
一般来说,单实例只要设置mysqld中的 port、basedir、datadir、character-set-server 即可
数据库的启动和关闭
启动
启动数据库服务(以下任选其一):
1# 以守护进程方式启动:
2mysqld_safe &
3
4# 普通方式启动:
5mysqld &
6
7# 如果my.cnf不在mysql指定的目录下,需要指定启动参数,例如:
8mysqld_safe --defaults-file=/app/conf/my.cnf &
9
10# 或者:
11mysqld --defaults-file=/app/conf/my.cnf &
初始化
首次登录方式(因为本文是以无密码初始化,所以首次登录不需要密码)
1mysql
2#登录后,可修改 root 初始化密码:
3alter user 'root'@'localhost' identified with mysql_native_password by '123456';
4
5# 创建 sa@% 用于远程登录:
6create user 'sa'@'%' identified with mysql_native_password by 'hello,zhangcong';
7grant all privileges on *.* to 'sa'@'%' with grant option;
8
9# 刷新用户权限:
10flush privileges;
关闭数据库服务
1mysqladmin shutdown -u root -p
安装系统服务
1sudo vi /etc/systemd/system/mysql.service
2## 内容如下:
3[Unit]
4Description=mysql
5After=network.target
6
7[Service]
8Type=forking
9ExecStart=/usr/local/mysql/support-files/mysql.server start
10ExecReload=/usr/local/mysql/support-files/mysql.server restart
11ExecStop=/usr/local/mysql/support-files/mysql.server stop
12PrivateTmp=true
13
14[Install]
15WantedBy=multi-user.target
评论