1.玛莉亚(maria)不喜欢->>
今天我的一个基于mysql的程序,在mariadb上跑,结果报错了,查了一下,原来是不支持如下sql:
SELECT object.id as u1_rva_object_id,
object.no as u1_rva_object_no,
object.name as u1_rva_object_name,
object.data->>'$.propNameIndex' as u1_rva_object_prop_name_index,
FROM rva_object `object` WHERE (object.id = 'rva_ceshi')
这个sql有个特殊的操作符 ->> ,是操作json类型的数据库字段data的,获取其json属性propNameIndex。
这种操作在mysql5.7是支持的妥妥的,但是到了mariadb10.2.*,却是折戟沉沙了。
于是,我只能在CentOS7上干掉mariadb,重装mysql5.7了。
2.下载mysql5.7
下载需要注册oracle账号,所以无法在CentOS上下载,只能在windows机器上下载,然后再上传到CentOS机器上。
如何上传我就不多说了,请参考我之前的文档中,WinSCP工具的安装和使用:
在centos7上安装开发环境(jdk8、mariadb和tomcat9)
3.安装mysql
3.1.解压
我的mysql上传路径:/home/software/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
tar zxvf /home/software/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local
mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql
3.2.跟玛莉亚say bye bye
systemctl stop mariadb
yum remove mariadb-server
3.3.创建用户组和用户
# 创建组
groupadd mysql
#创建用户
useradd -r -g mysql mysql
其实之前的玛莉亚已经创建了上述用户和组,所以不执行也可以,但如果是全新安装mysql,则还是需要!
这样做是出于安全性的考虑,给mysql数据库创建专有用户,该用户只能访问mysql目录,不能访问系统其它目录
如果直接用root初始化mysql,连接mysql时会报错:[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
3.4.给mysql目录指定专有用户和用户组
# 首先创建data目录:
mkdir /usr/local/mysql/data
# 指定用户和用户组:
cd /usr/local
chown