简介

  MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。

官方网址:https://mariadb.org


配置安装

配置文件

配置文件模板在根目录下,如mariadb-10.0.5-winx64\my-small.ini。除此之外还有my-medium.ini、my-large.ini、my-huge.ini和my-innodb-heavy-4G.ini.

请你根据自己机器的内存大小和实际需要,新建一个my.ini配置文件在此目录下。

行锁

为了支持表的行锁,我们需要使用InnoDB,以my-small.ini为例,我们需要打开(所指定的目录必须存在):(如果配置出错,比如没有对应的文件夹,服务启动不了)

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir =E:\\dbserver\\mariadb\\mariadb-10.0.5-winx64\\data\\ #data配置在mariadb下data目录,配置在其他地方,如果创建的是innodb,第二次启动就有问题了
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir =E:\\dbserver\\mariadb\\log\\
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_force_recovery = 1 #强制启动mysql,当innodb表空间损坏时候,启动不了,可以强制启动;没有这行有时候会报InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator

二进制日志

为了保留我们操作数据库的操作记录,需要打开二进制记录:

# Uncomment the following if you want to log updates
log-bin=mysql-bin

设置默认字符为utf8

[client]default-character-set =  utf8

安装/删除MariaDB数据库服务

通过cmd命令行在(mariadb-10.0.5-winx64\bin目录下执行):注意:请使用管理员权限安装

mysqld.exe --install MariaDB
mysqld.exe --remove MariaDB

启用/停用MariaDB服务

通过cmd命令行在(mariadb-10.0.5-winx64\bin目录下执行):

net start MariaDB
net stop MariaDB

设置root密码

通过cmd命令行(mariadb-10.0.5-winx64\bin目录下执行):

mysqladmin -u root password "123456"

自此MariaDB数据库就创建完毕,可以用客户端工具连接上来,如navicat for mysql

其他。MariaDB数据的命令和MySQL几乎一模一样,MySQL5.5之前的解决方案,完全可以用Maria替代MySQL.

修改root密码

首次修改密码

mysqladmin -u root -p[oldpass] password newpass

注意oldpass(老密码)可选,如果root默认密码为空,则不需要输入

如果需要更改老密码,请注意老密码与-p之间不要有空格,否则会报错,另外password和newpass(新密码)之间以空格分隔。

忘掉密码

关掉mysqldaemon程序或服务

safe_mysqld --skip-grant-tables &
use mysql
update user set password=password("new_pass") where user="root";
flush privileges;

允许远程连接

首先打开防火墙3306

netsh firewall add portopening TCP 3306 MySQL(3306)

设置mysql可以远程连接

mysql -u root -p123456
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';


增加用户和授权

CREATE USER '用户名'@'localhost或者%' IDENTIFIED BY '密码';

grant select,insert,update,delete on mydb.* to '用户名'@'localhost或者%' identified by '密码';
flush privileges;
select * from mysql.user

删除用户及授权

drop user '用户名'@'localhost或者%';