MariaDB安装与初始化

1. 安装与初始化

建议yum方式安装,否则无数个依赖整死你。

以最新且稳定的原则,选择安装MariaDB10.2,操作系统为CentOS 7.4。

Step1:在/etc/yum.repos.d/目录下创建MariaDB的yum源文件MariaDB.repo,参考官网Setting up MariaDB Repositories

cat << EOF > /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.2 CentOS repository list - created 2018-04-23 04:49 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb] 
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

Step2: yum install

sudo yum install MariaDB-server MariaDB-client

以下是部分安装信息,可以看到需要很多依赖,所以不建议rpm包或编译方式安装,否则需要自行处理众多依赖,极有可能出错。

已安装:
  MariaDB-client.x86_64 0:10.1.23-1.el7.centos
  MariaDB-server.x86_64 0:10.1.23-1.el7.centos
  MariaDB-shared.x86_64 0:10.1.23-1.el7.centos

作为依赖被安装:
  MariaDB-common.x86_64 0:10.1.23-1.el7.centos
  boost-program-options.x86_64 0:1.53.0-26.el7
  galera.x86_64 0:25.3.20-1.rhel7.el7.centos
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
  perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
  perl-DBI.x86_64 0:1.627-4.el7
  perl-Data-Dumper.x86_64 0:2.145-3.el7
  perl-IO-Compress.noarch 0:2.061-2.el7
  perl-Net-Daemon.noarch 0:0.48-5.el7
  perl-PlRPC.noarch 0:0.2020-14.el7

不过yum方式下载速度确实有点慢,但也没什么好办法,国内各大镜像都是5.5版本的,挂机下载安装吧!

Step3: 初始化,这一步必须使用root账号登录

#设置编码
vim /etc/my.cnf
...
[mysqld]
character-set-server=utf8

#启动(自启动:systemctl enable mariadb)
systemctl start mariadb

#初始化(进一步操作根据提示进行,基本上一路yes)
mysql_secure_installation

2. 用户与权限相关操作

客户端连接
mysql -h127.0.0.1 -P3306 -u<username> -p<password>

首次连接时可能出现错误提示,依次执行以下命令即可

sudo mysql -uroot
use mysql;
update user set plugin='' where user='root';
flush privileges;
exit

如果通过其他主机远程连接时,出现以下错误,则需要关闭selinux及firewalld。

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.166.130' (113 "No route to host")
查看用户
select user,host from mysql.user;
创建用户并设置密码及允许访问的host
insert into mysql.user (user,host,password) values ('mysql','%',password('密码'));
修改密码
update mysql.user set password=password('新密码') where user='用户名';
创建用户
insert into mysql.user (user,host) values ('mysql','%');
修改密码
update mysql.user set password=password('密码') where user='用户';
授权
grant insert,update,select,delete on 数据库.* to 用户@'%';
撤销权限
revoke delete on 数据库.*  from 用户;
更新权限
flush privileges;

3. 数据库相关操作

查看字符编码
MariaDB [(none)]> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
查看数据库列表
show databases;
show schemas;
创建数据库
MariaDB [(none)]> create schema test default charset utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
删除数据库
MariaDB [(none)]> drop database test;
Query OK, 0 rows affected (0.00 sec)
切换当前数据库
use 数据库;
查看当前数据库下所有表
show tables;
查看表中所有字段详细信息
show full columns from 表名;

4.时区设置

4.1 查看时区
MariaDB [(none)]> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | UTC    |
| time_zone        | +08:00 |
+------------------+--------+
4.2 设置当前会话时区
set time_zone = '+8:00';
flush privileges;
4.3 设置全局时区
set global time_zone = '+8:00';
flush privileges;

5. 导入、导出

导出(备份结构和数据)
mysqldump -h 127.0.0.1 -u root -p 数据库 > 导出文件
导出(仅备份结构)
mysqldump -h 127.0.0.1 -u root -p -d 数据库 > 导出文件
导入(恢复)
mysql -u root -p -h 127.0.0.1
use 数据库名
source 备份.sql
# 或使用以下方式
mysql -u root -p -h 127.0.0.1 < 备份.sql
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,752评论 25 709
  • 转载请注明文章出处http://www.jianshu.com/p/13bec4dc4537乐于分享点滴技术 一、...
    码夫阅读 2,593评论 0 1
  • MySQL进阶讲义 这一章我们开始进一步探讨MySQL的使用,从MySQL的介绍开始,接触MySQL的安装、命令行...
    厲铆兄阅读 6,811评论 0 44
  • 为什么而读书? 为打发时间?为增长见识?为学习新的知识?为培养气质……所以这一切都是我们想要的,可真正属于自己的太...
    不算爱阅读 1,306评论 0 0
  • 文/非是藉秋风 四千多年前,帝舜传位给大禹的同时也传给了大禹十六字的“治国方针”:“人心惟危,道心惟微;惟精惟一,...
    非是藉秋风阅读 11,495评论 39 75

友情链接更多精彩内容