简介
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或者%';