一台云服务器Windows篇:02、MariaDB

MariaDB v10.3 版本选择注意事项与安装,及简单的使用与备份、恢复

下载

当前支持版本:Download,含历史的所有版本:MariaDB Server – All releases – MariaDB.org

  1. 10.3版本可简单视为MySQL 5.7对等版本(安装方法与服务端配置方法都一致),后面的版本就都有差异了。
  2. zip版没有my.ini文件,建议使用安装版;或提前准备my.ini文件,再做zip版本安装(未验证)
    1. Configuring MariaDB with Option Files – MariaDB Knowledge Base
    2. MySQL :: MySQL 5.7 Reference Manual :: 4.2.2.2 Using Option Files

v10.3 msi版的data\my.ini内容

安装过程中可以修改端口号,也可以在此文件中修改端口号,修改后需要重启MySQL系统服务。

[mysqld]
datadir=C:/Program Files/MariaDB 10.3/data
port=33060
innodb_buffer_pool_size=245M
character-set-server=utf8
[client]
port=33060
plugin-dir=C:/Program Files/MariaDB 10.3/lib/plugin

v10.3 zip版本安装/卸载方法:适用于MySQL 5.7

安装:先解压,再运行cmd.exe

rem 配置系统环境变量 Path 中添加 mysql.zip\bin
cd /d mysql.zip\bin
rem 本地root密码为空
mysqld --initialize-insecure
mysqld install

检查系统服务所使用的my.ini,是否正确:

"C:\Program Files\MariaDB 10.3\bin\mysqld.exe" "--defaults-file=C:\Program Files\MariaDB 10.3\data\my.ini" "MySQL"

确认使用my.ini文件,后启动数据库服务:

net start mysql

卸载:

mysqld remove

本地登录:

mysql -u root -p
mysql –u root –ppassword
mysql –h localhost -P 3306 -uroot –ppassword

修改密码:

mysqladmin.exe -u root -p password
或
mysql> set password for 'root'@'localhost' = password('B$51}w1Xo@Vb}');
mysql> set password for 'root'@'::1' = password('B$51}w1Xo@Vb}');

注意:此时root不能远程客户端登录,只能本地登录;也不建议开启root远程登录,而是创建一个新的用户并授权。

mysql> CREATE USER 'rdpDba'@'%' IDENTIFIED BY 'tbr12GGkypqgvG';
mysql> GRANT all privileges ON *.* TO 'rdpDba'@'%';

mysql中工具作用

  1. mysqld.exe是MySQL的主程序,mysqld意思是mysql daemon(后台进程),在后台运行,监听3306端口。
  2. mysql.exe是MySQL的命令行工具,是一个客户端软件,可以对任何主机的mysql服务(即后台运行的mysqld)发起连接。
  3. mysqladmin.exe是一个执行管理操作的客户端,例如创建或删除数据库,重新加载授权表,将表刷新到磁盘以及重新打开日志文件。
  4. root账号第一次登录是没有密码,也可继续修改密码:mysqladmin -u root -p password
  5. mysqlshow.exe是用来查看当前数据库、表、索引、视图等
  6. mysqldump.exe是mysql 数据导出及备份工具。
  7. mysqlslap.exe是mysql 性能分析测试工具。

SQL简单使用

-- mariadb 10.4.34 安装 axure cloud 437版失败,换成10.3.39没有问题。
-- 1.使用create database语句创建数据库
CREATE DATABASE IF NOT EXISTS db_name DEFAULT CHARSET utf8;
-- 2.查看创建的DB的字符集
select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'db_name';
-- 3.创建用户并授权
CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'Password';
GRANT all privileges ON db_name.* TO 'user_name'@'localhost';
flush privileges;
-- 4.其他:可远程登录的 root 改名
update mysql.`user` u set u.`User` ='u1' where u.Host ='%' and u.`User` ='root';
flush privileges;
-- 4.其他:查看授权与撤消授权
show grants for 'u1'@'%';
revoke all PRIVILEGES ON `db_name`.* from `u1`@`%`;
-- 4.其他:超级权限
update mysql.user set super_priv='Y' where user='u1' and host='%';
flush privileges;
-- 4.其他:删除用户、数据库
DROP USER 'user_name'@'host';
dorp database db_name;

Db备份

-- 准备备份账号
mysql> CREATE USER 'BakU'@'localhost' IDENTIFIED BY "1Xo@Vb";
mysql> GRANT select,show view,event,trigger,lock tables ON *.* TO 'BakU'@'localhost';

/*
https://dev.mysql.com/doc/refman/5.7/en/using-mysqldump.html
备份中包含事件、存储过程和函数、触发器:--events --routines --triggers 
备份中包含 CREATE DATABASE 和 USE 语句:--databases
指定数据库:axshare
*/

$> mysqldump -uBaku -p1Xo@Vb –events –routines –triggers –databases axshare > axshare.sql

--no-data 选项告诉 mysqldump 不要转储表数据,结果 在仅包含语句的转储文件中创建表。相反,--no-create-info 选项 告诉 mysqldump 抑制输出中的语句,以便 转储文件仅包含表数据

$> mysqldump –no-data test > dump-defs.sql

$> mysqldump –no-create-info test > dump-data.sq

Db恢复

$> mysql.exe -hlocalhost -P33060 -uroot -pB$e351}w1Xo@Vb} –default-character-set=utf8

-- 如果该文件是不包含 CREATE DATABASE 和 USE 语句的单数据库转储,请创建数据库
mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql
-- https://dev.mysql.com/doc/refman/5.7/en/mysqldump-upgrade-testing.html
-- 使用 mysqldump 测试升级不兼容性
-- 在考虑MySQL升级时,谨慎的做法是安装 独立于当前生产的较新版本 版本。然后,您可以转储数据库和数据库对象 从生产服务器定义并将它们加载到 新服务器,以验证它们是否得到正确处理。(这是 对于测试降级也很有用。

— 在生产服务器上:

$> mysqldump –all-databases –no-data –routines –events > dump-defs.sql
— 在升级的服务器上:

$> mysql < dump-defs.sql
— 由于转储文件不包含表数据,因此它可以处理速度快。这使您能够发现潜在不兼容,无需等待冗长的数据加载操作。在转储文件存在时查找警告或错误正在处理中。

— 验证定义已处理后 正确地转储数据并尝试将其加载到升级后的 服务器。
— 在生产服务器上:

$> mysqldump –all-databases –no-create-info > dump-data.sql
— 在升级的服务器上:

$> mysql < dump-data.sql
— 现在检查表内容并运行一些测试查询。,比如关键表的 select * from table_name;
— 涉及系统库的导入,还需要运行 mysql_upgrade.exe

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注