1 关于Halo兼容MySQL的简述
MySQL服务器能处理TB级别的数据库,同时包含了一些可能在其他SQL数据库找不到的扩充,Halo数据库为了更好的提供迁移等服务,对其实现了兼容。
2 如何启用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(目标用户);
注意:
创建新的表之后,如果没有授权,目标用户将无权访问该表,业务长须中相关的业务代码会报错。




