MariaDB Centos7 下安装MariaDB

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MariaDB Centos7 下安装MariaDB

Centos7下安装MariaDB


1、下载安装文件

rpm包为例,对于标准服务器安装,至少需要下载clientshared,serve文件(安装时如果少了,会有错误提示的

 



2、防止冲突,检查是否已经安装了MySQL

rpm -qa 'mysql*'

 

如有必要,移除已安装数据库

 

3、安装

[root@localhost mnt]# rpm -ivh MariaDB-*

warning: MariaDB-10.0.19-centos7-x86_64-client.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY

error: Failed dependencies:

   mariadb is obsoleted by MariaDB-client-10.0.19-1.el7.centos.x86_64

   mariadb-libs < 1:10.0.19-1.el7.centos conflicts with MariaDB-common-10.0.19-1.el7.centos.x86_64

   mariadb-libs is obsoleted by MariaDB-shared-10.0.19-1.el7.centos.x86_64

 

解决方法:

[root@localhost mnt]# rpm -iUvh MariaDB-*  #如已经存在相关软件则更新,无则安装

 

说明:安装前确保已安装了必备软件包,比如perl

 

4、为MariaDB root用户设置密码

1)启动mysql服务

[root@localhost mnt]# /usr/sbin/mysqld start

150529  0:26:41 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 2987 ...

150529  0:26:41 [ERROR] Fatal error: Please consult the Knowledge Base to find out how to run mysqld as root!

150529  0:26:41 [ERROR] Aborting

150529  0:26:41 [Note] /usr/sbin/mysqld: Shutdown complete

 

错误原因:

mysql默认拒绝用户使用root账户启动,因为拥有文件权限的用户可能导致MySQL Server使用root帐户创建文件(比如,~root/.bashrc),但root用户可以通过在命令后面加上"--user=root"选项来强行启动mysqld

 

可以以普通用户运行mysqld,为了安全起见,可用特殊的普通用户mysql,来管理mysql数据库

 

解决方法一:

[root@localhost mnt]# /usr/sbin/mysqld --user=root

150529  0:37:26 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 3035 ...

150529  0:37:26 [Note] InnoDB: Using mutexes to ref count buffer pool pages

150529  0:37:26 [Note] InnoDB: The InnoDB memory heap is disabled

150529  0:37:26 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

150529  0:37:26 [Note] InnoDB: Memory barrier is not used

150529  0:37:26 [Note] InnoDB: Compressed tables use zlib 1.2.7

150529  0:37:26 [Note] InnoDB: Using Linux native AIO

150529  0:37:26 [Note] InnoDB: Using CPU crc32 instructions

150529  0:37:26 [Note] InnoDB: Initializing buffer pool, size = 128.0M

150529  0:37:27 [Note] InnoDB: Completed initialization of buffer pool

150529  0:37:27 [Note] InnoDB: Highest supported file format is Barracuda.

150529  0:37:27 [Note] InnoDB: 128 rollback segment(s) are active.

150529  0:37:27 [Note] InnoDB: Waiting for purge to start

150529  0:37:27 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.23-72.1 started; log sequence number 1616717

150529  0:37:27 [Note] Plugin 'FEEDBACK' is disabled.

150529  0:37:27 [Note] Server socket created on IP: '::'.

150529  0:37:27 [Note] Event Scheduler: Loaded 0 events

150529  0:37:27 [Note] /usr/sbin/mysqld: ready for connections.

Version: '10.0.19-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server

 

 

解决方法二:

1)编辑/etc/my.cnf,添加如下内容(意为mysqld组中的mysql用户

[root@localhost mnt]# vim /etc/my.cnf

 

#

# This group is read both both by the client and the server

# use it for options that affect everything

#

[client-server]

 

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

[myslqd]

user=mysql

~                                              

注意:这里的mysql用户是不是手动创建的,貌似是安装时默认创建的

 

2)以mysql用户运行mysqld(比root用户更安全

[root@localhost ~]# /usr/sbin/mysqld --user=mysql

150531  0:10:22 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 2990 ...

150531  0:10:22 [Note] InnoDB: Using mutexes to ref count buffer pool pages

150531  0:10:22 [Note] InnoDB: The InnoDB memory heap is disabled

150531  0:10:22 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

150531  0:10:22 [Note] InnoDB: Memory barrier is not used

150531  0:10:22 [Note] InnoDB: Compressed tables use zlib 1.2.7

150531  0:10:22 [Note] InnoDB: Using Linux native AIO

150531  0:10:22 [Note] InnoDB: Using CPU crc32 instructions

150531  0:10:22 [Note] InnoDB: Initializing buffer pool, size = 128.0M

150531  0:10:22 [Note] InnoDB: Completed initialization of buffer pool

150531  0:10:23 [Note] InnoDB: Highest supported file format is Barracuda.

150531  0:10:23 [Note] InnoDB: 128 rollback segment(s) are active.

150531  0:10:23 [Note] InnoDB: Waiting for purge to start

150531  0:10:23 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.23-72.1 started; log sequence number 1616943

150531  0:10:23 [Note] Plugin 'FEEDBACK' is disabled.

150531  0:10:24 [Note] Server socket created on IP: '::'.

150531  0:10:24 [Note] Event Scheduler: Loaded 0 events

150531  0:10:24 [ERROR] mysqld: File './multi-master.info' not found (Errcode: 13 "Permission denied")

150531  0:10:24 [ERROR] Creation of Master_info index file './multi-master.info' failed

150531  0:10:24 [ERROR] Failed to initialize multi master structures

150531  0:10:24 [ERROR] Aborting

 

150531  0:10:24 [Note] InnoDB: FTS optimize thread exiting.

150531  0:10:24 [Note] InnoDB: Starting shutdown...

150531  0:10:25 [Note] InnoDB: Shutdown completed; log sequence number 1616953

150531  0:10:25 [Note] /usr/sbin/mysqld: Shutdown complete

 

如上,出错了,咋解决?

分析错误原因:无权限在当前目录下创建multi-master.info

 

解决方法:

[root@localhost ~]# find / -name multi-master.info

/var/lib/mysql/multi-master.info

[root@localhost ~]# cd /var/lib/mysql

 

[root@localhost mysql]# ll

total 110636

-rw-rw----. 1 mysql mysql    16384 May 31 00:10 aria_log.00000001

-rw-rw----. 1 mysql mysql       52 May 31 00:10 aria_log_control

-rw-rw----. 1 mysql mysql 12582912 May 31 00:10 ibdata1

-rw-rw----. 1 mysql mysql 50331648 May 31 00:10 ib_logfile0

-rw-rw----. 1 mysql mysql 50331648 May 29 00:18 ib_logfile1

-rw-r-----. 1 mysql root     13342 May 30 23:55 localhost.localdomain.err

-rw-rw----. 1 root  root         0 May 29 00:37 multi-master.info

drwx--x--x. 2 mysql mysql     4096 May 29 00:18 mysql

srwxrwxrwx. 1 mysql mysql        0 May 31 00:10 mysql.sock

drwx------. 2 mysql mysql     4096 May 29 00:18 performance_schema

[root@localhost mysql]# chown mysql:mysql multi-master.info

[root@localhost mysql]# ll

total 110636

-rw-rw----. 1 mysql mysql    16384 May 31 00:10 aria_log.00000001

-rw-rw----. 1 mysql mysql       52 May 31 00:10 aria_log_control

-rw-rw----. 1 mysql mysql 12582912 May 31 00:10 ibdata1

-rw-rw----. 1 mysql mysql 50331648 May 31 00:10 ib_logfile0

-rw-rw----. 1 mysql mysql 50331648 May 29 00:18 ib_logfile1

-rw-r-----. 1 mysql root     13342 May 30 23:55 localhost.localdomain.err

-rw-rw----. 1 mysql mysql        0 May 29 00:37 multi-master.info

drwx--x--x. 2 mysql mysql     4096 May 29 00:18 mysql

srwxrwxrwx. 1 mysql mysql        0 May 31 00:10 mysql.sock

drwx------. 2 mysql mysql     4096 May 29 00:18 performance_schema

 

再次验证,成功了

[root@localhost mysql]# /usr/sbin/mysqld --user=mysql

150531  0:15:53 [Note] /usr/sbin/mysqld (mysqld 10.0.19-MariaDB) starting as process 3026 ...

150531  0:15:53 [Note] InnoDB: Using mutexes to ref count buffer pool pages

150531  0:15:53 [Note] InnoDB: The InnoDB memory heap is disabled

150531  0:15:53 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins

150531  0:15:53 [Note] InnoDB: Memory barrier is not used

150531  0:15:53 [Note] InnoDB: Compressed tables use zlib 1.2.7

150531  0:15:53 [Note] InnoDB: Using Linux native AIO

150531  0:15:53 [Note] InnoDB: Using CPU crc32 instructions

150531  0:15:53 [Note] InnoDB: Initializing buffer pool, size = 128.0M

150531  0:15:53 [Note] InnoDB: Completed initialization of buffer pool

150531  0:15:53 [Note] InnoDB: Highest supported file format is Barracuda.

150531  0:15:53 [Note] InnoDB: 128 rollback segment(s) are active.

150531  0:15:53 [Note] InnoDB: Waiting for purge to start

150531  0:15:54 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.23-72.1 started; log sequence number 1616953

150531  0:15:54 [Note] Plugin 'FEEDBACK' is disabled.

150531  0:15:54 [Note] Server socket created on IP: '::'.

150531  0:15:54 [Note] Event Scheduler: Loaded 0 events

150531  0:15:54 [Note] /usr/sbin/mysqld: ready for connections.

Version: '10.0.19-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server

 

5、修改默认用户的密码

[root@localhost ~]# /usr/bin/mysqladmin -u root -h localhost.localdomain password 'test1234';

 

也可以# /usr/bin/mysqladmin -u root password 'new-password'

 

注意:mariadb user表中的root用户和linuxroot账户没什么关联

 

6、移除安装时创建的测试数据库和匿名用户(强烈推荐)

[root@localhost ~]# /usr/bin/mysql_secure_installation

 

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

     SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

 

In order to log into MariaDB to secure it, we'll need the current

password for the root user.  If you've just installed MariaDB, and

you haven't set the root password yet, the password will be blank,

so you should just press enter here.

 

Enter current password for root (enter for none):

OK, successfully used password, moving on...

 

Setting the root password ensures that nobody can log into the MariaDB

root user without the proper authorisation.

 

You already have a root password set, so you can safely answer 'n'.

 

Change the root password? [Y/n] n

... skipping.

 

By default, a MariaDB installation has an anonymous user, allowing anyone

to log into MariaDB without having to have a user account created for

them.  This is intended only for testing, and to make the installation

go a bit smoother.  You should remove them before moving into a

production environment.

 

Remove anonymous users? [Y/n] Y

... Success!

 

Normally, root should only be allowed to connect from 'localhost'.  This

ensures that someone cannot guess at the root password from the network.

 

Disallow root login remotely? [Y/n] n

... skipping.

 

By default, MariaDB comes with a database named 'test' that anyone can

access.  This is also intended only for testing, and should be removed

before moving into a production environment.

 

Remove test database and access to it? [Y/n] Y

- Dropping test database...

... Success!

- Removing privileges on test database...

... Success!

 

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

 

Reload privilege tables now? [Y/n] Y

... Success!

 

Cleaning up...

 

All done!  If you've completed all of the above steps, your MariaDB

installation should now be secure.

 

Thanks for using MariaDB!

[root@localhost ~]#

 

7、关闭数据库

[root@localhost ~]# mysql -u root -ptest1234

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 5

Server version: 10.0.19-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]> shutdown;

Query OK, 0 rows affected (0.01 sec)

 

MariaDB [(none)]>

 

开启服务的终端可见关闭结果如下

150530 23:45:01 [Note] /usr/sbin/mysqld: Normal shutdown

 

150530 23:45:01 [Note] Event Scheduler: Purging the queue. 0 events

150530 23:45:01 [Note] InnoDB: FTS optimize thread exiting.

150530 23:45:01 [Note] InnoDB: Starting shutdown...

150530 23:45:03 [Note] InnoDB: Shutdown completed; log sequence number 1616867

150530 23:45:03 [Note] /usr/sbin/mysqld: Shutdown complete

 

8、创建用户与授权

MariaDB [(none)]> create user 'testacc'@'182.168.1.103' identified by 'test1234';

Query OK, 0 rows affected (0.00 sec)

 

MariaDB [(none)]> grant all on *.* to 'testacc'@'%' identified by 'test1234';

Query OK, 0 rows affected (0.00 sec)

 

[root@localhost ~]# mysql --protocol=tcp -P 3306 -h192.168.1.103 -utestacc -ptest1234

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 10

Server version: 10.0.19-MariaDB MariaDB Server

 

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

MariaDB [(none)]>

MariaDB [(none)]> exit

Bye

 

9、客户端工具远程连接

 

如上图,Error No.2003错误Can’t connect to MySQL server on ‘192.168.1.103’

 



解决方法:

#禁止开机启动防火墙

[root@localhost ~]# systemctl disable firewalld.service

rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

rm '/etc/systemd/system/basic.target.wants/firewalld.service'

 

#停止防火墙

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# systemctl start firewalld.service

 



 

参考连接:

https://mariadb.com/kb/en/mariadb/installing-mariadb-with-the-rpm-tool/

 

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
27天前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
101 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
85 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
136 2
|
2月前
|
Linux 知识图谱
Centos7安装killall,fuser, killall,pstree和pstree.x11
通过上述步骤,您已在CentOS 7系统中成功部署了killall、fuser、pstree以及pstree.x11,为高效管理系统进程打下了坚实基础。更多关于服务器管理与优化的知识,获取全面技术支持与解决方案。
71 1
|
2月前
|
监控 安全 Linux
CentOS7下安装配置ntp服务的方法教程
通过以上步骤,您不仅能在CentOS 7系统中成功部署NTP服务,还能确保其配置合理、运行稳定,为系统时间的精确性提供保障。欲了解更多高级配置或遇到特定问题,提供了丰富的服务器管理和优化资源,可作为进一步学习和求助的平台。
120 1
|
1月前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
190 0
|
1月前
|
关系型数据库 MySQL Linux
Linux-安装Mariadb
本文介绍了在 Alibaba Cloud Linux 系统上安装和配置 MariaDB 10.5 的步骤。包括下载安装、初始化数据库、启动服务、处理启动失败的常见问题(如权限问题),以及如何连接数据库、设置密码和允许外部连接。通过这些步骤,您可以顺利完成 MariaDB 的安装和基本配置。
58 0
下一篇
DataWorks