mysql--Centos安装MariaDB(mysql)

简介: mysql--Centos安装MariaDB(mysql)

前戏


大家都知道mysql数据库被oracle公司收购了,后期可能会面临着收费的风险,因此还想免费使用开源的数据库mysql,就诞生了MariaDB。

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。

开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。


配置Mariadb的yum源


安装MariaDB有两种方式,第一种方式是,通过阿里云的yum源去下载(第三方的yum源,可能会版本较低,且软件不全,可能找不到),前提是配置好了阿里云的yum源。参考https://www.cnblogs.com/zouzou-busy/p/11602857.html

yum install mariadb-server

第二种方式是,通过mariadb官方的yum源去下载(一定是这个软件最正确的yum源,且包都是最新的)

yum install MariaDB-server MariaDB-client

使用第二种方式需要先配置MariaDB 的 YUM 配置文件 MariaDB.repo 文件

1.编辑创建mariadb.repo仓库文件

vim /etc/yum.repos.d/MariaDB.repo

2.添加repo仓库配置

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1


安装


这里我们使用第一种方法安装,因为第一种镜像在国内,安装起来快,第二种镜像在国外,安装起来慢

当使用阿里云进行安装的时候,一定要保证/etc/yum.repos.d下没有MariaDB.repo文件,要不然下载速度会让你怀疑人生

当 MariaDB 仓库地址添加好后,你可以通过下面的一行命令轻松安装 MariaDB。

yum install MariaDB-server MariaDB-client -y

安装好了之后就要启动MariDB服务

mariadb数据库的相关命令是:
systemctl start mariadb  #启动MariaDB
systemctl stop mariadb  #停止MariaDB
systemctl restart mariadb  #重启MariaDB
systemctl enable mariadb  #设置开机启动

查看状态

systemctl status mariadb

启动完我们直接在命令行输入mysql就可以进入了


初始化mysql


在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据 库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面 5 个 步骤。

  1. 设置 root 管理员在数据库中的密码值(注意,该密码并非 root 管理员在系统中的密 码,这里的密码值默认应该为空,可直接按回车键)。
  2. 设置 root 管理员在数据库中的专有密码。
  3. 随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业务的安全性。
  4. 删除默认的测试数据库,取消测试数据库的一系列访问权限。
  5. 刷新授权列表,让初始化的设定立即生效。

确保mariadb服务器启动后,执行命令初始化

mysql_secure_installation
[root@HH ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
  ......
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y    设置root密码   zou123456
New password:   zou123456
Re-enter new password:    zou123456
Password updated successfully!
Reloading privilege tables..
 ... Success!
Remove anonymous users? [Y/n] y  删除匿名账户
 ... Success!
Disallow root login remotely? [Y/n] n   禁止root管理员账户远程登入,我这里不禁止
 ... skipping.
Remove test database and access to it? [Y/n] y    删除test数据库并取消对它的权限
 - Dropping test database...
 ... Success!
Reload privilege tables now? [Y/n] y    刷新授权表,让初始化后的设定立即生效
 ... Success!
Thanks for using MariaDB!


数据库权限设置


当我们初始化数据库之后,远程连接的时候会报下面的错误

这是因为数据库权限的问题,这时候我们就要对数据库的权限进行一些设置了

mysql使用grant命令对账户进行授权,grant命令常见格式如下

grant 权限 on 数据库.表名 to 账户@主机名 identified by '账户密码';          # 对特定数据库中的特定表授权
grant 权限 on 数据库.* to 账户@主机名 identified by '账户密码';            # 对特定数据库中的所有表给与授权
grant 权限1,权限2,权限3 on *.* to 账户@主机名 identified by '账户密码';    # 对所有库中的所有表给与多个授权
grant all privileges on *.* to 账户@主机名  identified by '账户密码';    # 对所有库和所有表授权所有权限

退出数据库,使用root登录,开始权限设置

[root@HH ~]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 14
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> grant all privileges on *.* to root@'%' identified by 'zou123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
# 对root所有权限,所有主机都授权
grant all privileges on *.* to root@'%' identified by 'zou123456';

授权之后一定要刷新权限flush privileges;

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

刷新完之后在去远程登录就可以登录成功了

注意:上面授权的密码是zou123456,哪怕你把密码改了,在远程端登录也是输入zou123456,而不是改掉之后的密码


乱码解决


默认创建的数据库是latin1文,这样我们如果往数据库里插入中文,查询出来的就是乱码,所以我们要把数据库的编码设置为utf8,进入数据库之后,可以通过 \s 查看编码格式

mysql的配置文件在/etc/my.cnf下,加入以下信息

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
log-error=/var/log/mysqld.log
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

修改了配置文件之后,重启服务

systemctl restart mariadb

查看数据库创建的编码,只有在更新了数据库编码之后,创建的数据库,才会使用这个编码

show create database 数据库名;

这样查询出来的才是中文,不会乱码

如果创建数据库报如下错误

MariaDB [(none)]> create database fa;
ERROR 1006 (HY000): Can't create database 'fa' (errno: 13)

执行下面这句

chown -R mysql:mysql /var/lib/mysql

/var/lib/mysql 为mysql的数据库存储的所在目录.


数据库的备份


为了防止数据的丢失,我们要对数据库定期做好备份

通过命令导出全部数据(退出数据库),输入数据库用户名密码就导出成功了

mysqldump -u root -p --all-databases > /tmp/db.dump

可以删除一些无关紧要的数据库,然后导入

drop database 数据库;

导入备份好的数据库有两种方式,第一种在mysql命令行中输入下面命令

source /tmp/db.dump   #这一步是输入的sql语句,在mysql中输入,导入数据

第二种方式导入数据,退出mysql,在linux命令行中执行如下命令

mysql -uroot -p <  /tmp/db.dump

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
2629 4
MySQL源码编译安装
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
2025 4
MySQL二进制包安装
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
1077 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
1101 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
1071 6
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
2784 16
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
935 10
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
646 3
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
1143 1
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
3564 26

热门文章

最新文章