简介
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎
- MySQL MariaDB版本对应
🍁Synology(群晖)
一:修改账号外网访问权限
# 登录nas SSH 进入下面目录
cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin
# root登录 密码默认是你群晖root账号的密码
./mysql -uroot -p[$yourPassword]# 选择msyql 库
use mysql# 更新wordpress_user账号权限
#update user set host='%' where user='wordpress_user';
# 更新root权限
update user set host='%' where user='root';# +-----------+----------------+
# ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
# +-----------+----------------+# 查看账号信息
select host,user from user;# +-----------+----------------+
# | host | user |
# +-----------+----------------+
# | % | root |
# | % | wordpress_user |
# | 127.0.0.1 | root |
# | ::1 | root |
# +-----------+----------------+
# 4 rows in set (0.000 sec)# 刷新权限
FLUSH PRIVILEGES;
二:群晖数据库速度测试
- 测试SQL脚本
CREATE TABLE `goods` (
`goods_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`goods_name` varchar(55) DEFAULT NULL COMMENT '商品名称',
`goods_attrs` text COMMENT '商品属性例如:{"color":"red","size":100,"sex":"famale"}',
`support_store_ids` text COMMENT '支持门店id 格式:["10000","20000","30000"]',
PRIMARY KEY (`goods_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='商品表';INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (1, '5店通用女生VIP卡', '{\"type\":\"通店\",\"sex\":\"famale\"}', '[\"001\",\"002\",\"003\",\"004\",\"005\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (2, '5店通用男生VIP卡', '{\"type\":\"通店\",\"sex\":\"male\"}', '[\"001\",\"002\",\"003\",\"004\",\"005\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (3, '门店1男生卡', '{\"type\":\"门店1\",\"sex\":\"male\"}', '[\"001\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (4, '门店2男生卡', '{\"type\":\"门店2\",\"sex\":\"nomal\"}', '[\"002\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (5, '门店3男生卡', '{\"type\":\"门店3\",\"sex\":\"nomal\"}', '[\"003\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (6, '门店1女生卡', '{\"type\":\"门店1\",\"sex\":\"famale\"}', '[\"001\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (7, '门店2女生卡', '{\"type\":\"门店2\",\"sex\":\"famale\"}', '[\"002\"]');
INSERT INTO `goods`(`goods_id`, `goods_name`, `goods_attrs`, `support_store_ids`) VALUES (8, '门店3女生卡', '{\"type\":\"门店3\",\"sex\":\"famale\"}', '[\"003\"]');
群晖宿主机直接安装和用docker安装速度一样
- 在其他设备机械盘安装速度测试
🍁QNAP(威联通)
- 正常安装之后设置外部访问
首先要 ssh 到 NAS 上面,然后执行 mysql 命令登录:
cd /share/CACHEDEV1_DATA/.qpkg/MariaDB10/bin
# 登录
./mysql -uroot -p -S /var/run/mariadb10.sock
# 授权远程登录
use mysql# 更新root权限
# update user set host='%' where user='root';
# 查看账号信息
select host,user from user;# +-----------+----------------+
# | host | user |
# +-----------+----------------+
# | % | root |
# | % | wordpress_user |
# | 127.0.0.1 | root |
# | ::1 | root |
# +-----------+----------------+
# 4 rows in set (0.000 sec)# 刷新权限
FLUSH PRIVILEGES;
- MariaDB使用mysql.user时Insert操作报错:ERROR 1356 (HY000): View ‘mysql.user‘ references invalid table(s) or
grant all privileges on *.* to 'root'@'%' identified by 'useradmin';
delete from mysql.user where User='';
FLUSH PRIVILEGES;
附带威联通TS-464C在普通机械盘下面的测试速度
- 结论
群晖不论在VMM里面安装MySQL 和使用DSM-Docker 安装,并且使用系统原装MariaDB 10 都与正常其他设备速度差距较大。已经在多台群晖机器上测试,排除了Raid问题,排除了设备问题。目前猜测是群晖的虚拟化问题。希望有知道的大佬指点。
已经换了威联通使用普通硬盘, 安装测试了一下速度正常, 确定是群晖系统问题!
参考资料 & 致谢
[1] QNAS MariaDB 远程登录配置