踩坑!
MariaDB 是不是不支持动态 sql ?
MariaDB 是不是不支持动态 sql ?
MariaDB 是不是不支持动态 sql ?
chatgpt:
MariaDB 是支持动态 SQL 的。动态 SQL 是指在运行时动态生成 SQL 语句,而不是在编译时就固定好 SQL 语句。
MariaDB 提供了多种方式支持动态 SQL,例如使用 prepared statements 和 stored procedures。使用 prepared statements 可以预先编译 SQL 语句,然后在运行时提供参数来执行该语句。使用 stored procedures 则可以在数据库中创建一个过程,其中包含动态 SQL 语句,然后在运行时调用该过程来执行 SQL 语句。
除了 prepared statements 和 stored procedures,MariaDB 还提供了其他一些支持动态 SQL 的功能,例如用户自定义函数和动态列名。这些功能可以帮助开发人员更加灵活地编写动态 SQL 语句,以满足不同的需求。
不知道你这个问题是否已经解决, 如果还没有解决的话:注意,在配置文件中,如果更改了数据的同步目录,那么该目录要提前创建好,与此相同,log文件的存放目录,也要创建出来(只创建到目录即可),否则mariadb程序将无法启动。
(1)修改Master1配置文件/etc/my.cnf,修改如下:
datadir = /data/madata/ # 数据库数据文件存放目录-->也是同步目录
log-bin = /var/lib/mysql/binlogs/master1-bin #启用二进制日志
relay-log = /var/lib/mysql/relaylogs/relay-bin #启用中继日志
auto_increment_increment = 2 #设定为主服务器的数量,防止auto_increment字段重复,双主的情况下为2
auto_increment_offset = 1 #自增长字段的初始值,在多台master环境下,不会出现自增长ID冲突
server-id = 131 # 用于标识该语句最初是从哪个server写入的,server-id一定要有的
log-error = /data/mdata/logs/mariadb.err #记录错误日志文件
log-slave-updates = on # 建议开启,多主多从时要开启,否则不能同步
expire-logs-days = 14 # 日志过期时间
sync-binlog = 1 # # 确保主从事务安全
#binlog-ignore-db=mysql # 设置忽略binlog数据库-->根据需要自行设置
(1)修改Master2配置文件/etc/my.cnf,修改如下:
datadir = /data/madata/mysql/ # 数据库数据文件存放目录-->也是同步目录
log-bin = log-bin = /var/lib/mysql/binlogs/master2-bin #启用二进制日志
relay-log = /var/lib/mysql/relaylogs/relay-bin #启用中继日志
auto_increment_increment = 2 #设定为主服务器的数量,防止auto_increment字段重复
auto_increment_offset = 2 #自增长字段的初始值,在多台master环境下,不会出现自增长ID冲突
server-id = 132 # 用于标识该语句最初是从哪个server写入的,server-id一定要有的
log-error = /data/mdata/logs/mariadb.err #记录错误日志文件
log-slave-updates = on # 建议开启,多主多从时要开启,否则不能同步
expire-logs-days = 14 # 日志过期时间
sync-binlog = 1 # # 确保主从事务安全
#binlog-ignore-db=mysql # 设置忽略binlog数据库-->根据需要自行设置
重启数据库使配置生效