MariaDB数据库、Mysql数据库的区别
mariadb与mysql都属于同一类数据库管理系统。但是mariadb与mysql在使用范围和使用目的上都有所不同,两者的主要功能都是为了通过开源社区在维护中,从而获得GPL授权许可。从关系上来看,mariadb是属于数据库管理系统的开发和升级版本,它仅仅代表MySQL的一个分支。
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。
MariaDB数据库、Mysql数据库的安装
无论MariaDB还是Mysql数据库,都属于分布式数据结构,采用"端口+服务"的配置方式,如果端口设置不当,经常会出现端口被占用或服务启动异常情况,为此,演示使用bat在Windows平台下安装MariaDB或Mysql。
MariaDB安装目录
1、为数据库设置服务名称和端口号,以便进行区分(要由区分度,避免端口号和服务名称冲突)
rem ==========Set Server Service Port==========
set SERVICE_MARIADB_PORT=10007
rem ==========Set Server Service Name==========
set SERVICE_MARIADB_NAME=MariaDB_Test
2、检测本地机器是否安装该服务,如没有则进行服务器安装
echo -----Install MariaDB Service-----
rem set Mysql install path
cd /d "%~dp0mariadb-5.5.64-winx64"
rem install MariaDB Fully
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%SERVICE_MARIADB_NAME%"
if %ERRORLEVEL% == 1 (
echo -----Install MariaDB_Test Service-----
del /f /s /q /a "%~dp0"\*.ini
del /f /s /q /a "%~dp0"\mariadb-5.5.64-winx64\data\ib*
%dir%:
call modify.bat %AC_SERVICE_MARIADB_PORT%
call mariadb_install.bat %AC_SERVICE_MARIADB_NAME%, %SERVICE_MARIADB_PORT%, %input%
@goto normalSequence
) else (
echo ----MariaDB_AC is already installed----
@goto checkDatabaserunning
)
3、 根据需求,传参配置数据库(配置服务名称、端口号)
echo off
setlocal enabledelayedexpansion
set root=%cd%
@echo off >%root%/my-huge.ini
echo [client] >>my-huge.ini
echo port=%SERVICE_MARIADB_PORT% >>my-huge.ini
echo socket=/tmp/mysql.sock >>my-huge.ini
echo [mysqld] >>my-huge.ini
echo port=%SERVICE_MARIADB_PORT% >>my-huge.ini
echo socket=/tmp/mysql.sock >>my-huge.ini
echo basedir=%root:\=\\% >>my-huge.ini
echo datadir=%root:\=\\%\\data >>my-huge.ini
echo skip-external-locking >>my-huge.ini
echo key_buffer_size=384M >>my-huge.ini
echo max_allowed_packet=16M >>my-huge.ini
echo table_open_cache=512 >>my-huge.ini
echo sort_buffer_size=2M >>my-huge.ini
echo read_buffer_size=2M >>my-huge.ini
echo read_rnd_buffer_size=8M >>my-huge.ini
echo myisam_sort_buffer_size=64M >>my-huge.ini
echo thread_cache_size=8 >>my-huge.ini
echo query_cache_size=32M >>my-huge.ini
echo thread_concurrency=8 >>my-huge.ini
echo server-id=1 >>my-huge.ini
echo innodb_flush_log_at_trx_commit=0 >>my-huge.ini
echo innodb_buffer_pool_size=3072M >>my-huge.ini
echo [mysqldump] >>my-huge.ini
echo quick >>my-huge.ini
echo max_allowed_packet=16M >>my-huge.ini
echo [mysql] >>my-huge.ini
echo no-auto-rehash >>my-huge.ini
echo [myisamchk] >>my-huge.ini
echo key_buffer_size=256M >>my-huge.ini
echo sort_buffer_size=256M >>my-huge.ini
echo read_buffer=2M >>my-huge.ini
echo write_buffer=2M >>my-huge.ini
echo [mysqlhotcopy] >>my-huge.ini
echo interactive-timeout >>my-huge.ini
echo [WinMySQLAdmin] >>my-huge.ini
echo Server=%root:\=\\%\\bin\mysqld.exe >>my-huge.ini
modify.bat实现内容
执行 modify.bat后,my-huge.ini配置文件变成如下:
[client]
port=10007
socket=/tmp/mysql.sock
[mysqld]
port=10007
socket=/tmp/mysql.sock
basedir=D:\\Program Files (x86)\\Test\\Server\\mariadb-5.5.64-winx64
datadir=D:\\Program Files (x86)\\Test\\Server\\mariadb-5.5.64-winx64\\data
skip-external-locking
key_buffer_size=384M
max_allowed_packet=16M
table_open_cache=512
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=8M
myisam_sort_buffer_size=64M
thread_cache_size=8
query_cache_size=32M
thread_concurrency=8
server-id=1
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=3072M
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size=256M
sort_buffer_size=256M
read_buffer=2M
write_buffer=2M
[mysqlhotcopy]
interactive-timeout
[WinMySQLAdmin]
Server=D:\\Program Files (x86)\\Test\\Server\\mariadb-5.5.64-winx64\\bin\mysqld.exe
4、执行modify_install.bat进行安装数据库
@echo off
echo ********************MariaDB Installing***********************
"%~dp0bin\mysqld" --install %SERVICE_MARIADB_NAME% --defaults-file="%~dp0my-huge.ini"
net start %SERVICE_MARIADB_NAME%
echo -----create Mysql database and table-----
set dbhost=127.0.0.1
set dbuser=root
set test1_sqlfile=test1.sql
set test2_sqlfile=test2.sql
cd /d "%~dp0"\bin
mysqladmin -P"%SERVICE_MARIADB_PORT%" -uroot flush-privileges password "%input%"
SET sqlpath="%~dp0"
mysql -P"%SERVICE_MARIADB_PORT%" -u%dbuser% -p%input% < %sqlpath%%ac_sqlfile% --default-character-set=utf8
mysql -P"%SERVICE_MARIADB_PORT%" -u%dbuser% -p%input% < %sqlpath%%attentdance_sqlfile% --default-character-set=utf8
备注:input是设置的数据库密码,可通过加密方式进行传输,保证数据安全性。