文章

mysql安装和配置

mysql安装和配置

mysql安装和配置

docker compose方式

安装

docker compose yml文件配置示例。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
mysql:
    image: mysql:8.0
    container_name: mysql
    restart: always
    networks:
      your-network:
        ipv4_address: 177.7.0.10
    ports:
      - 3306:3306
    privileged: true
    volumes:
      - ${DATA_PATH}/mysql/mysql:/var/lib/mysql
      - ${DATA_PATH}/mysql/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
      # 增加自定义配置。放置到conf.d目录下,会自动差分合并
      - ${DATA_PATH}/mysql/mycustom.cnf:/etc/mysql/conf.d/mycustom.cnf
    environment:
      TZ: ${TZ}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    command:
      [
        'mysqld',
        '--character-set-server=utf8',
        '--collation-server=utf8_unicode_ci',
        '--lower-case-table-names=1'
      ]

配置

挂载的mycustom.cnf自定义配置文件参考。

# 允许远程连接
bind-address		= 0.0.0.0

# 指定引擎
default_storage_engine=InnoDB

# 缓存池参数优化
innodb_buffer_pool_size=4294967296
innodb_buffer_pool_chunk_size=536870912
innodb_buffer_pool_instances=8

# 使用行格式记录二进制日志
binlog-format=row

# 二进制日志有效期,单位天。超时自动删除。也适用于中继日志。在8.0.1后提供了binlog_expire_logs_seconds参数秒级的更细粒度控制
expire_logs_days=7

# 单个二进制日志文件的最大大小。当max_relay_log_size参数未设置时也适用于中继日志
max_binlog_size=500M

原生方式

安装

ubuntu22.04安装mysql 8.0参考。

1
2
3
4
sudo apt-get install mysql-server -y
sudo systemctl enable mysql
sudo service mysql start
sudo service mysql status

配置

配置文件修改

修改/etc/mysql/mysql.conf.d/目录下的mysqld.cnf文件,改动内容参考上面章节。修改后重启mysql服务。

1
2
sudo systemctl restart mysql
sudo systemctl status mysql

允许远程连接

执行mysql -u root -p连接数据库,执行以下sql

1
2
3
4
use mysql;
update user set host = '%' where user ='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
本文由作者按照 CC BY 4.0 进行授权