CentOS安装并设置MariaDB

前端之家收集整理的这篇文章主要介绍了CentOS安装并设置MariaDB前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


说明: 首先必须能链接外网. 如果不能直接访问,那也可以设置代理,请参考: 在内网机器上设置yum代理


使用 yum 的权限要求是 root 用户,如果你不是,那么可以需要 在 shell命令之前加上 sudo,或者 su root 切换到 super 管理员进行操作. 并可能需要输入密码.


1. 添加 yum 数据源;


@H_403_20@建议命名为 MariaDB.repo 类似的名字:


@H_403_20@[plain] view plain copy 在CODE上查看代码片派生到我的代码

@H_403_20@cd /etc/yum.repos.d/

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


@H_403_20@然后,写入文件内容:(建议使用 10.0)


@H_403_20@[plain] view plain copy 在CODE上查看代码片派生到我的代码

@H_403_20@# MariaDB 10.0 CentOS repository list - created 2015-08-12 10:59 UTC

@H_403_20@# http://mariadb.org/mariadb/repositories/

@H_403_20@[mariadb]

@H_403_20@name = MariaDB

@H_403_20@baseurl = http://yum.mariadb.org/10.0/centos6-amd64

@H_403_20@gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

@H_403_20@gpgcheck=1


@H_403_20@该文件内容是参考官网,并从官网上生成的,设置安装源仓库的 具体的地址为: https://downloads.mariadb.org/mariadb/repositories/

@H_403_20@选择好操作系统版本之后既可以查看,其他操作系统的安装源也可以在此处查看并设置。


@H_403_20@如果服务器不支持https协议,或者gpgkey 保错,确保没问题的话,可以将 gpgcheck=1 修改为 gpgcheck=0,则不进行校验.


我的示例:


@H_403_20@[root@localhost ~]# cat /etc/yum.repos.d/MariaDB.repo


@H_403_20@# MariaDB 10.1 CentOS repository list - created 2017-04-05 08:04 UTC

@H_403_20@# http://downloads.mariadb.org/mariadb/repositories/

@H_403_20@[mariadb]

@H_403_20@name = MariaDB

@H_403_20@baseurl = http://yum.mariadb.org/10.1/centos6-amd64

@H_403_20@gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

@H_403_20@gpgcheck=1


2. 安装数据库


@H_403_20@# yum remove MariaDB-server MariaDB-client


@H_403_20@yum -y install MariaDB-server MariaDB-client


@H_403_20@如果要删除旧的数据库可以使用remove,参数 -y 是确认,不用提示。此处,安装的是服务器和客户端,一般来说安装这两个就可以了。


3. 启动数据库


@H_403_20@如果不用进行其他的操作,则现在就可以直接启动数据库,并进行测试了。


@H_403_20@

@H_403_20@# 查看MysqL状态;关闭数据库

@H_403_20@# service MysqL status

@H_403_20@# service MysqL stop

@H_403_20@# 启动数据库

@H_403_20@service MysqL start

@H_403_20@4. 修改root密码

@H_403_20@

@H_403_20@# 修改root密码

@H_403_20@MysqLadmin -u root password 'root'


@H_403_20@因为安装好以后的root密码是空,所以需要设置; 如果是测试服务器,那么你可以直接使用root,不重要的密码很多时候可以设置为和用户名一致,以免忘记了又想不起来。

@H_403_20@如果是重要的服务器,请使用复杂密码,例如邮箱,各种自由组合的规则的字符等。

我的示例:


[root@localhost ~]# service MysqL start

@H_403_20@Starting MysqL.170405 17:20:34 MysqLd_safe Logging to '/var/lib/MysqL/localhost.localdomain.err'.

@H_403_20@170405 17:20:34 MysqLd_safe Starting MysqLd daemon with databases from /var/lib/MysqL

@H_403_20@ [ OK ]

root@localhost ~]# ps aux|grep mysq

@H_403_20@root 8824 0.0 0.0 11436 1564 pts/0 S 17:20 0:00 /bin/sh /usr/bin/MysqLd_safe --datadir=/var/lib/MysqL --pid-file=/var/lib/MysqL/localhost.localdomain.pid

@H_403_20@MysqL 8898 1.1 1.6 824048 134948 pts/0 Sl 17:20 0:00 /usr/sbin/MysqLd --basedir=/usr --datadir=/var/lib/MysqL --plugin-dir=/usr/lib64/MysqL/plugin --user=MysqL --log-error=/var/lib/MysqL/localhost.localdomain.err --pid-file=/var/lib/MysqL/localhost.localdomain.pid


5. 登录数据库


@H_403_20@

@H_403_20@MysqL -u root -p


@H_403_20@如果是本机,那可以直接使用上面的命令登录,当然,需要输入密码. 如果是其他机器,那么可能需要如下的形式:

@H_403_20@

@H_403_20@MysqL -h 127.0.0.1 -P 3306 -u root -p

[root@localhost ~]# MysqL

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

@H_403_20@Your MariaDB connection id is 3

@H_403_20@Server version: 10.1.22-MariaDB MariaDB Server


@H_403_20@Copyright (c) 2000,2016,Oracle,MariaDB Corporation Ab and others.


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


@H_403_20@MariaDB [(none)]>

@H_403_20@MariaDB [(none)]> show variables like 'innodb_file_per%';

@H_403_20@+-----------------------+-------+

@H_403_20@| Variable_name | Value |

@H_403_20@+-----------------------+-------+

@H_403_20@| innodb_file_per_table | ON |

@H_403_20@+-----------------------+-------+

@H_403_20@1 row in set (0.00 sec)


6. 简单sql测试


@H_403_20@

@H_403_20@-- 查看MysqL的状态

@H_403_20@status;

@H_403_20@-- 显示支持的引擎

@H_403_20@show engines;

@H_403_20@-- 显示所有数据库

@H_403_20@show databases;

@H_403_20@-- 切换数据库上下文,即设置当前会话的默认数据库

@H_403_20@use test;

@H_403_20@-- 显示数据库所有的表

@H_403_20@show tables;

@H_403_20@-- 创建一个表

@H_403_20@CREATE TABLE t_test (

@H_403_20@ id int(11) UNSIGNED NOT NULL AUTO_INCREMENT,

@H_403_20@ userId char(36),

@H_403_20@ lastLoginTime timestamp,

@H_403_20@ PRIMARY KEY (id)

@H_403_20@) ENGINE=InnoDB DEFAULT CHARSET=utf8;

@H_403_20@

@H_403_20@-- 插入测试数据

@H_403_20@insert into t_test(userId)

@H_403_20@ values

@H_403_20@('admin')

@H_403_20@,('haha')

@H_403_20@;

@H_403_20@

@H_403_20@-- 简单查询

@H_403_20@select * from t_test;

@H_403_20@select id,userId from t_test where userId='admin' ;


7. 修改数据存放目录


@H_403_20@MysqL,MariaDB 的默认数据存放在 /var/lib/MysqL/ 目录下,如果不想放到此处,或者是想要程序和数据分离,或者是磁盘原因,

@H_403_20@需要切换到其他路径,则可以通过修改 datadir系统变量来达成目的.

@H_403_20@


@H_403_20@# 停止数据库


@H_403_20@[root@localhost ~]# service MysqL stop

@H_403_20@Shutting down MysqL... [ OK ]

@H_403_20@# 创建目录,假设没有的话


@H_403_20@[root@localhost ~] # mkdir -p /data/MysqL


@H_403_20@#设置权限

[root@localhost ~]# chown -R MysqL:MysqL /data/


[root@localhost ~]# ll /data/

@H_403_20@total 4

@H_403_20@drwxr-xr-x 5 MysqL MysqL 4096 Apr 5 17:50 MysqL


@H_403_20@# 按下面的命令重新初始化数据库

@H_403_20@

@H_403_20@[root@localhost ~]# /usr/bin/MysqL_install_db --defaults-file=/etc/my.cnf.d/server.cnf --datadir=/data/MysqL --user=MysqL

@H_403_20@# 查看/data/MysqL下面的是否生成数据


@H_403_20@[root@localhost ~]# ls /data/MysqL/

@H_403_20@aria_log.00000001 bogon.err ib_logfile0 localhost.localdomain.err performance_schema

@H_403_20@aria_log_control ibdata1 ib_logfile1 MysqL test

@H_403_20@# 其实查看 /etc/my.cnf 文件可以发现

@H_403_20@# MariaDB 的此文件之中只有一个包含语句

@H_403_20@# 所以需要修改配置文件为 /etc/my.cnf.d/server.cnf


@H_403_20@cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf_original

@H_403_20@vim /etc/my.cnf.d/server.cnf


@H_403_20@然后 按 i 进入编辑模式,可以插入相关内容.使用键盘的上下左右键可以移动光标,编辑完成以后,按 ESC 退出编辑模式(进入命令模式),然后输入命令:wq 保存并退出

我的示例:


[root@localhost ~]# cat /etc/my.cnf.d/server.cnf

@H_403_20@#

@H_403_20@# These groups are read by MariaDB server.

@H_403_20@# Use it for options that only the server (but not clients) should see

@H_403_20@#

@H_403_20@# See the examples of server my.cnf files in /usr/share/MysqL/

@H_403_20@#


@H_403_20@# this is read by the standalone daemon and embedded servers

@H_403_20@[server]


@H_403_20@# this is only for the MysqLd standalone daemon

@H_403_20@[MysqLd]


@H_403_20@datadir=/data/MysqL #设置/data/MysqL为新文件的数据目录

@H_403_20@socket=/var/lib/MysqL/MysqL.sock

@H_403_20@#

@H_403_20@# * Galera-related settings

@H_403_20@#

@H_403_20@[galera]

@H_403_20@# Mandatory settings

@H_403_20@#wsrep_on=ON

@H_403_20@#wsrep_provider=

@H_403_20@#wsrep_cluster_address=

@H_403_20@#binlog_format=row

@H_403_20@#default_storage_engine=InnoDB

@H_403_20@#innodb_autoinc_lock_mode=2

@H_403_20@#

@H_403_20@# Allow server to accept connections on all interfaces.

@H_403_20@#

@H_403_20@#bind-address=0.0.0.0

@H_403_20@#

@H_403_20@# Optional setting

@H_403_20@#wsrep_slave_threads=1

@H_403_20@#innodb_flush_log_at_trx_commit=0


@H_403_20@# this is only for embedded server

@H_403_20@[embedded]


@H_403_20@# This group is only read by MariaDB servers,not by MysqL.

@H_403_20@# If you use the same .cnf file for MysqL and MariaDB,

@H_403_20@# you can put MariaDB-only options here

@H_403_20@[mariadb]


@H_403_20@# This group is only read by MariaDB-10.1 servers.

@H_403_20@# If you use the same .cnf file for MariaDB of different versions,

@H_403_20@# use this group for options that older servers don't understand

@H_403_20@[mariadb-10.1]

@H_403_20@

#重启MysqL


[root@localhost ~]# service MysqL start

@H_403_20@Starting MysqL.170405 17:50:20 MysqLd_safe Logging to '/data/MysqL/localhost.localdomain.err'.

@H_403_20@170405 17:50:20 MysqLd_safe Starting MysqLd daemon with databases from /data/MysqL

@H_403_20@ [ OK ]


提示


/usr/bin/MysqLd_safe_helper: Can't create/write to file '/data/MysqL/bogon.err' (Errcode: 13 "Permission denied")

@H_403_20@ERROR!

害苦了我,多方查找才发selinx开启这呢,果断禁用,然后重启操作系统:OK!!!


vim /etc/sysconfig/selinux

SELINUX=disabled


[root@localhost ~]# MysqL

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

@H_403_20@Your MariaDB connection id is 3

@H_403_20@Server version: 10.1.22-MariaDB MariaDB Server


@H_403_20@Copyright (c) 2000,MariaDB Corporation Ab and others.


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


@H_403_20@MariaDB [(none)]> show databases;

@H_403_20@+--------------------+

@H_403_20@| Database |

@H_403_20@+--------------------+

@H_403_20@| information_schema |

@H_403_20@| MysqL |

@H_403_20@| performance_schema |

@H_403_20@| test |

@H_403_20@+--------------------+

@H_403_20@4 rows in set (0.00 sec)


7.1 创建慢查询日志文件


@H_403_20@既然上面指定了慢查询日志文件,我后来看了下MariaDB的err日志,发现MariaDB不会自己创建该文件,所以我们需要自己创建,并修改相应的文件权限(比如 MysqL 采用 MysqL用户,可能我们使用 root用户创建的文件,此时要求慢查询日志文件MysqL用户可读可写就行。)



@H_403_20@touch /usr/local/ieternal/MysqL_data/slow_query_log.log

@H_403_20@chmod 666 /usr/local/ieternal/MysqL_data/slow_query_log.log

@H_403_20@然后重新启动MysqL.



@H_403_20@service MysqL start


8、MysqL初始设置

1、删除匿名用户

MysqL> delete from MysqL.user where user='';


2、设置root密码

1)、

MysqLadmin -u root password "newpass"

2)、

MysqL> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

3)、

MysqL> UPDATE MysqL.user SET Password = PASSWORD('db@pass123') WHERE user = 'root';

MysqL> FLUSH PRIVILEGES;


4)、在丢失root密码的时候,可以这样


   MysqLd_safe --skip-grant-tables&

   MysqL -u root MysqL

MysqL> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

   MysqL> FLUSH PRIVILEGES;


MysqL> grant all on *.* to pancou@'%' identified by 'pancou';

猜你在找的CentOS相关文章