【原创】CentOS 7.0下安装配置mariaDB

--------------------------------------------------------------------------------------------------------------------

下面介绍CentOS 7.0下安装配置mariadb的详细安装配置过程

服务器相关设置如下:

操作系统:CentOS 7.0 64位

IP地址:192.168.1.102

网   关:192.168.1.1

机器名: mariadbServer

mariadb版本:mariadb_10.3

 

CentOS 7.0系统安装配置步骤详解

.最小化安装CentOS 7.0

这里面最重要的是存储的分区规划:

推荐的分区模式:


 

对于单个磁盘驱动器,LVM实际对性能没有太大的贡献,但是可以用他来对数据进行分类管理,也可以方便MySQL使用LVM进行备份

            我的分区模式:

 

.安装本地yum:

a.挂载并复制光盘内容到/yum 文件夹

shell > mkdir /mnt/cdrom #创建目录

shell > mount /dev/cdrom /mnt/cdrom #挂载

-- 若不想每次都要放光盘,那就复制光盘文件到本地硬盘

shell > cp -avf /mnt/cdrom/* /yum # -a:该选项保留链接、文件属性,并递归地复制目录

 

b.创建本地yum源配置文件

cat >>/etc/yum.repos.d/CentOS-Local.repo<<EOF

[Local]

name=LocalYum

baseurl=file:///yum/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

enabled=1

c.禁用网络yum

shell > cd /etc/yum.repos.d/

shell > mv CentOS-Base.repo  CentOS-Base.repo.bak

 

.主机名网络及防火墙访问安全设置

a.若安装时没有设置主机名,则参考以下步骤设置主机名:

shell > hostname  mariadbServer  #临时设置主机名为mariadbServer 

shell > vi /etc/hostname #编辑配置文件

mariadbServer  #修改localhost.localdomain为mariadbServer 

:wq!  #保存退出

shell > vi /etc/hosts #编辑配置文件

127.0.0.1   localhost  mariadbServer  #修改localhost.localdomain为mariadbServer 

:wq!  #保存退出

b.网络配置

shell > cd  /etc/sysconfig/network-scripts/

shell > vi  ifcfg-eno16777736

HWADDR=00:0C:29:8D:24:73

TYPE=Ethernet

BOOTPROTO=static  #启用静态IP地址

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=eno16777736

UUID=ae0965e7-22b9-45aa-8ec9-3f0a20a85d11

ONBOOT=yes  #开启自动启用网络连接

IPADDR0=192.168.21.128  #设置IP地址

PREFIXO0=24  #设置子网掩码

GATEWAY0=192.168.21.2  #设置网关

DNS1=8.8.8.8  #设置主DNS

DNS2=8.8.4.4  #设置备DNS

:wq!  #保存退出

 

shell > service network restart   #重启网络

shell > ip addr  #CentOS 7 ifconfig命令已经过时 查看IP地址使用ip addr ip link

-- 若习惯ifconfig  可以使用 yum install net-tools 进行安装

c.防火墙设置

CentOS 7.0默认使用的是firewall作为防火墙,这里改为常用的iptables防火墙。

     -- 关闭firewall:

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

     -- 安装iptables防火墙

yum install iptables-services #安装

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 12888 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

 

:wq! #保存退出

 

systemctl restart iptables.service #最后重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

 

d.关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

 

:wq! #保存退出

立即启用 setenforce 0

e.修改ssh默认端口,并取消允许rootssh权限,防止暴力破解

>vi /etc/ssh/sshd_config

-- 打开并修改PermitRootLogin no

-- 打开并修改port12887

service sshd restart

 

.mariadb安装及配置

a.上传安装编译好的包到目录,使用wincpvsftpd,建议使用wincp

    安装依赖的package:

 shell> yum install -y gcc gcc-c++

          shell> yum install -y cmake libaio bison ncurses-devel

b.添加用户和组

shell> groupadd mariadb-- 创建mariadb

shell> useradd -g mariadb mariadb-- 创建mariadb用户

shell> passwd mariadb-- 修改密码

c.解压缩并创建链接

shell> cd /usr/local

shell> tar -zxvf /root/mariadb-10.0.13-linux-x86_64.tar.gz

shell> ln -s /usr/local/mariadb-10.0.13-linux-x86_64 mariadb

d.修改文件所属用户及群组

shell> cd mariadb

shell> chown -R mariadb .

shell> chgrp -R mariadb .

e.创建数据目录并初始化权限表

Shell > cp /usr/local/mariadb-version.os/supported_files/my_medium.cnf /etc/my.cnf

shell> scripts/mysql_install_db --user=mariadb --datadir=/usr/local/mariadb/data

f.再次修改文件所属用户

           数据目录开放给mysql用户,其他可以开放给root

shell> chown -R root .

shell> chown -R mariadb data

g.安装完成启动mysql

        -- 创建链接

shell > ln -s /usr/local/mariadb /usr/local/mysql

        -- 修改参数文件并启动数据库

shell> bin/mysqld_safe --user=mariadb

 

h.环境变量配置并尝试连接mysql

/usr/local/mariadb/bin加入$PATH变量中,并设置别名

alias mariadb = 'mysql'

编译环境变量 source  .bash_profile

shell > mysql

注:

 中途如有错误,需重新安装,重新安装前先删除对应的文件

***************************************************************************************************

** Remove any pre-installed old mysql files / libraries usually linux distros installs MySQL 5.1 **

***************************************************************************************************

rm -fR /etc/mysql

rm -fR /var/lib/mysql/mysql

rm -fR /var/lib/mysql

find -R / -name mysql*

find / -name mysql*

rm -fR /opt/mysql

find / -name mysql*

重新解压文件.

 

j.用户安全配置

列举出当前不需要密码的用户:

shell > SELECT User, Host, Password FROM mysql.user;

列举出不需要密码可以连接的db:

shell > select user,db from mysql.db;

允许匿名用户或无权限的用户访问testtest_前缀的数据库;

-- 清除该表内容

root密码的设定可以有三种方式:

1).update

shell> mysql -u root

mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')

-> WHERE User = 'root';

mysql> FLUSH PRIVILEGES;

 

2).set password

shell> mysql -u root

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');

mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('newpwd');

mysql> SET PASSWORD FOR 'root'@'::1' = PASSWORD('newpwd');

mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');

 

3).mysqladmin

shell> mysqladmin -u root password "newpwd"

shell> mysqladmin -u root -h host_name password "newpwd"

-- 删除空用户:

mysql>drop user ''@'localhost';

mysql>drop user ''@'mariadb\_server';

 

-- 测试数据库的安全保障:

shell> mysql -u root -p

Enter password: (enter root password here)

mysql> DELETE FROM mysql.db WHERE Db LIKE 'test%';

mysql> FLUSH PRIVILEGES;

 

-- 彻底删除测试数据库

mysql> drop database test;

 

重启系统后报错找不到对应的/usr/local/mysql/bin/mysqld

原因是mysqld只认mysql/bin下面的mysqld,因此需要做一个链接到正确的mariadb/bin/mysqld

 

 k.用户管理:

     允许远程root用户登录

     mysql> grant all privileges on *.* to 'root'@'192.168.1.111' identified by 'y}%oTiaU-3' with grant option;

     mysql> flush privileges;

 

 l.设置mariadb开机自启动

-- cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mariadb   #将服务文件拷贝到init.d下,并重命名为mariadb

--  vi mariadb  #修改 mysqld_safe --datadir ..  添加用户-- mysqld_safe --user=mariadb ...

-- chkconfig --add mysql        添加服务

-- chkconfig --list             显示服务列表

            如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入

            chkconfig --level 345 mysql on

-- reboot重启电脑

-- netstat -na | grep 3306,如果看到有监听说明服务启动了

      m.设置mariadb数据库默认字符集

mariadb默认的数据库字符集为latin1,如果需要修改为支持中文字符的数据库,则需要修改以下配置参数。

-- vi /etc/my.cnf

    [mysqld]

    ...

    character-set-server=gbk (或utf)

             -- service mariadb restart

[] 在数据库创建的时候必须做好字符集的规划,在后期修改字符集可能会导致数据丢失。

 

       n.修改默认的datadir目录地址

随着数据量的增长,数据目录可能发生瓶颈,这时候需要对空间进行扩展指定新的datadir目录

解决的方法是

-- 停库,指向新的datadir目录;

shell> service mariadb stop

shell> mkdir -pv /mariadb/data

shell> chown mariadb:mariadb /mariadb/data

shell> cp -R /usr/local/mariadb/data/* /mariadb/data

shell> cd /mariadb/data

shell> chown -R mariadb:mariadb .

修改my.cnf

datadir = /mariadb/data

shell> service mariadb start

 

-- 也可以在安装时就指定datadir目录参数;

o.默认数据库不允许创建函数

log-bin-trust-function-creators=1

 p.创建用户,权限管理

创建普通用户,权限查询和执行存储过程

create user 'test'@'%' identified by '0R2fz%DLPc';

grant select,insert,update,delete,execute on testdb.* to 'test'@'%' identified by '0R2fz%DLPc' with grant option;

 

 

 

 

转载于:https://www.cnblogs.com/mayipapa/p/4653685.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值