跳到主要内容
版本:1.0.14

开启MySQL模式

通过 database_compat_mode 开启

Halo 14 通过 database_compat_mode 参数结合 second_listener_onsecond_port 开启 MySQL 模式。该方式一次只能设置一种兼容模式。

修改配置文件

编辑 $PGDATA/postgresql.conf,设置以下参数:

# 1. 数据库运行模式设置为 mysql
database_compat_mode = 'mysql'

# 2. 开启 MySQL 第二监听服务
second_listener_on = true

# 3. 指定 MySQL 服务的监听端口,建议设置为 3306
second_port = 3306

重启数据库

pg_ctl restart

创建 MySQL 模式的用户

psql
-- 设置密码加密方式
SET password_encryption='mysql_native_password';

-- 创建用户
CREATE USER halo1 WITH PASSWORD 'halo1';

-- 创建 schema(相当于 MySQL 中的建库)
CREATE SCHEMA test;

-- 授权
GRANT ALL PRIVILEGES ON SCHEMA test TO halo1;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO halo1;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO halo1;
ALTER USER halo1 LOGIN;
ALTER USER halo1 CREATEDB;
ALTER USER halo1 SUPERUSER;

连接测试

# 本地用户无需密码
mysql -h 127.0.0.1 -P 3306 -u halo1 -D test

# 远程用户需要密码
mysql -h xxx.xxx.xxx.xxx -P 3306 -u halo1 -D test -p

注意:

  • MySQL 模式中的操作只能在 halo0root 库下进行。
  • MySQL 的数据库即 schema,只需要在 halo0root 库下创建 schema 即可。
  • 创建新的表之后,需要对目标用户进行授权,否则目标用户将无权访问该表。