CentOS7 下调教mysql记实 之一

迁移数据库时遇到错误:

Error Code: 1418. This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

解决办法:

在CentOS终端上运行:
# mysql -uroot -p你的密码

MariaDB [(none)]> show variables like ‘%func%‘;

+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | OFF |
+---------------------------------+-------+
1 row in set (0.00 sec)

MariaDB [(none)]> set global log_bin_trust_function_creators=1;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show variables like ‘%func%‘;
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators | ON |
+---------------------------------+-------+
1 row in set (0.00 sec)

解释:
默认情况下function的创建是禁止的。
原来是因为在主从复制的两台MySQL服务器中开启了二进制日志选项log-bin,slave会从master复制数据,而一些操作,比如function所得的结果在master和slave上可能不同,所以存在潜在的安全隐患。因此,在默认情况下回阻止function的创建。

如果必须用,用完再关上吧。

时间: 2024-09-29 10:07:44

CentOS7 下调教mysql记实 之一的相关文章

CentOS7 下调教mysql记实 之三

我去,我的mysql在原Windows 2003服务器上好好的,迁移到linux下不能打开,跟踪半天,发现表名大小写的问题,windows不区分大小写,linux区分. 解决办法:关闭linux下 mysql 表名大小写敏感. vi /etc/my.cnf 打开这个文件后, [mysqld]后添加添加lower_case_table_names=1 然后[ESC] :wq,保存退出. 重启mysql数据库: systemctl restart mariadb.service

CentOS7 下调教mysql记实 之二

导入SQL后,普通用户不能调用存储过程,root可以. 解决: mysql> update mysql.proc set Definer='[email protected]%'; 然后修改Security_type字段: MariaDB [(none)]> update mysql.proc set Security_type='INVOKER'; Query OK, 19 rows affected (0.00 sec)Rows matched: 19 Changed: 19 Warnin

CentOS7下安装MySQL并配置远程连接

一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险 参照百度.开发基本相似). 参考文章:CentOS7 安装MySQL http://www.centoscn.com/mysql/2016/0315/6844.html 这里主要是安装MyS

CentOS7下一个mysql安装

CentOS7安装MySQL --下载mysql http://mirrors.sohu.com/mysql/MySQL-5.6/ http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar 一.准备工作 --下载后文件 MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar --新建目录 mkdir /home/www/ta

CentOS7 下安装 mysql 涉及到的命令

VMware虚拟机装好后,再装个CentOS7系统,以上环境自行百度... 一.Linux下查看mysql是否安装 1.指令ps -ef|grep mysql [[email protected]st 桌面]# ps -ef|grep mysql mysql 2688 1 0 13:31 ? 00:00:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 2857 2688 0 13:31 ? 00:00:01 /usr/sbin/mysql

CentOS7下安装Mysql和Memcached 以及 使用C#操作Mysql和Memcached

我本身是学.net的,但是现在很多主流SQL和NOSQL都是部置在linux下,本着好学的精神,前段时间装了个虚拟机,在其装上CentOS64位的服务器系统,对于英文0基础,linux0基础的我来说,过程是相当痛苦的,这里我就不分享了.下面分享一下在这个系统下安装Mysql和Memcached的过程. 安装Mysql 1.Centos 7 默认已不支持mysql ,而是带有MariaDB数据库管理系统(MySQL的一个分支),若要装mysql,最好先将MariaDB卸载 rpm -qa | gr

centos7下使用mysql离线安装包安装mysql5.7

服务器环境: centos7 x64 需要安装mysql5.7+ 一.卸载CentOS7系统自带mariadb # 查看系统自带的Mariadb [root@CDH-141 ~]# rpm -qa|grep mariadb mariadb-libs-5.5.44-2.el7.centos.x86_64 # 卸载系统自带的Mariadb [root@CDH-141 ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 # 删除etc

centos7 下安装mysql 关键步骤

#wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 这可能需要点时间,让我们先来看看其他内容吧,下载下来之后就是解压,进入目录 #tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz #cd mysql-5.6.35-linux-glibc2.5-x86_64 创建MySql用户和组 创建 /usr/local/m

学习笔记(2)centos7 下安装mysql

centos7安装mysql 本文通过yum方式安装mysql 1.添加mysql yum 仓库 去mysql开发者中心(http://dev.mysql.com/downloads/repo/yum/)下载对应平台的包. 安装下载下来的包文件 yum localinstall mysql57-community-release-el7-11.noarch.rpm 2.安装mysql 执行下面的命令进行安装 yum install mysql-community-server 开启mysql服务