跳到主要内容
版本:Next

如何启用MySQL模式

将数据库参数文件postgresql.conf进行设置

1)database_compat_mode设置为‘mysql’

database_compat_mode = ‘mysql’

2)为了使用Halo-MySQL服务,该项配置的值必须设置为true

second_listener_on=true

3)指定Halo-MySQL服务的监听端口。建议设置为3306。

second_port = *

4)重启数据库

pg_ctl restart

重新登录psql

5)新建MySQL本地用户(halo1), 无需密码登录

创建用户、密码、test数据库:
psql

set password_encryption='mysql_native_password';
create user halo1 with password 'halo1';
create database test;


切换test数据库、进行授权、修改:
\c test

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;

\q


安装MySQL客户端:

下载安装包:
mysql-community-client-8.0.24-1.el8.x86_64.rpm

安装:
rpm -ivh mysql-community-client-8.0.24-1.el8.x86_64.rpm --nodep

登录:
mysql -h 127.0.0.1 -P 3307 -u halo1 -D test(本地用户无需密码)
mysql -h 10.16.16.206 -P 3307 -u halo5 -D test5 -p (非本地用户需要输入密码)

7)登录MySQL用户

登录:mysql -h 10.16.16.206 -P 3306 -D test -u halo1 -p
密码:halo1

Halo数据库默认为MySQL 5.7版本,对应于5.7。

8)用户授权说明

将新创建的schema授权给目标用户。

例如:

Grant all privileges on schema new_schema_name to user_name(目标用户);

然后,每创建一个表之后(都是位于新创建的schema下)都要进行授权。例如:

grant all privileges on all tables in schema new_schema_name to user_name(目标用户);
grant all privileges on all sequences in schema new_schema_name to user_name(目标用户);

注意:

创建新的表之后,如果没有授权,目标用户将无权访问该表,业务长须中相关的业务代码会报错。