CentOS 7.2 安装配置mysql主从服务器

MySQL官方压缩包安装:



1:下载mysql官方版本,此处以目前最新版本5.7.14为例,下载的64位版本文件为:

mysql-5.7.14-linux-glibc2.5-x86_64.tar

2:解压文件

mv mysql-5.7.14-linux-glibc2.5-x86_64.tar /opt/mysql-5.7.14-linux-glibc2.5-x86_64.tar
tar -zvxf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.14-linux-glibc2.5-x86_64 /data1/mv mysql-5.7.14-linux-glibc2.5-x86_64 mysql

这里/data1是服务器上的挂载扩展点,因此放在该挂载点下,并将解压文件夹改名为mysql

3:创建mysql用户及用户组

groupadd mysql
useradd -r -g mysql mysql

这里-r表示该用户为系统用户,不能用于登录,可通过以下查看组及用户信息:

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql

4:变更mysql文件夹所属用户及组

chown -R mysql ./mysql
chgrp -R mysql ./mysql

5:mysql初始化

cd /data1/mysql
./bin/mysql_install_db --user=mysql --basedir=/data1/mysql --datadir=/data1/mysql/data/

正常情况下会出现如下结果:

2016-09-05 16:09:33 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2016-09-05 16:09:35 [WARNING] The bootstrap log isn‘t empty:
2016-09-05 16:09:35 [WARNING] 2016-09-05T08:09:33.109112Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2016-09-05T08:09:33.109668Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2016-09-05T08:09:33.109675Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)

6:编辑启动及配置文件

vim /data1/mysql/support-files/my-default.cnf

将配置文件内容按照如下修改:

[client]
default-character-set=gbk
[mysqld]
character-set-server=gbk
max_allowed_packet=60MB
max_connections=2000
datadir=/data1/mysql
socket=/data1/mysql/mysql.sock
symbolic-links=0
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=gbk
socket=/data1/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

也可以将log及pid文件都改为/data1目录(有人反映会遇到/var/run权限不足等问题)。

vim /data1/mysql/support-files/mysql.server

启动文件内修改basedir及datadir内容:

basedir=/data1/mysql
datadir=/data1/mysql/data

同时,为了在首次启动后有权限登录mysql,先在启动指令(start)中取消权限验证:

case "$mode" in
  ‘start‘)
    # Start daemon

    # Safeguard (relative paths, core dumps..)
    cd $basedir

    echo $echo_n "Starting MySQL"
    if test -x $bindir/mysqld_safe
    then
      # Give extra arguments to mysqld with the my.cnf file. This script
      # may be overwritten at next upgrade.
      $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args --skip-grant-tables >/dev/null 2>&1 &
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?

      # Make lock for RedHat / SuSE
      if test -w "$lockdir"
      then
        touch "$lock_file_path"
      fi

      exit $return_value
    else
      log_failure_msg "Couldn‘t find MySQL server ($bindir/mysqld_safe)"
    fi
    ;;

在mysqld_safe启动指令的参数中,暂时加入“--skip-grant-tables”参数,这一步非常重要,否则会报各种类似错误:

ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES).
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO).

即使正确地用mysql临时生成的密码(/root/.mysql_secret)也是如此。

然后将配置文件、启动文件copy至目的地:

cp -af ./my-default.cnv /etc/my.cnf
cp -af ./mysql.server /etc/init.d/mysqld

7:配置mysql的环境变量

vim /etc/profile

在末尾添加:

export PATH=$PATH:/data1/mysql/bin

生效环境变量:

source /etc/profile

8:配置mysql启动服务

chkconfig --add mysqld
chkconfig --level 35 mysql on
chkconfig

正常情况下mysqld已设置为系统服务:

mysqld             0:off    1:off    2:on    3:on    4:on    5:on    6:off
netconsole         0:off    1:off    2:off    3:off    4:off    5:off    6:off
network            0:off    1:off    2:on    3:on    4:on    5:on    6:off

9:创建自定义的日志目录(可选)

如果之前配置文件中日志目录修改为/data1/mysql/log,则需要手动创建该目录:

mkdir /data1/mysql/log
chown -R mysql /data1/mysql/log
chgrp -R mysql /data1/mysql/log

10:启动mysql服务

在centOS7中,直接用systemctl启动即可:

systemctl start mysql

11:更改root用户密码并分配远程访问权限

由于之前在start中取消了权限验证,所以现在可以不输入密码直接连上数据库,这里我们先更改root用户密码,并分配远程访问权限,成功后将去除start启动指令中的取消权限验证参数。

mysql -u root mysql

无需验证直接连接mysql,成功后出现mysql>提示符:

mysql> use mysql
mysql> update user set authentication_string=password(‘123456‘) where user=‘root‘;
mysql> flush privileges;
mysql> grant all on *.* to [email protected]‘%‘ identified by ‘123456‘;

第一行切换当前数据库;

第二行修改root账户密码,这里的“authentication_string”是较新的版本,老版本的密码字段是"password";

第三行刷新权限;

第四行分配远程访问权限给root用户,这里的密码是“123456”。

接下来修改/etc/rc.d/init.d/mysqld文件,去除脚本中start部分的"--skip-grant-tables"参数,并重启mysql服务,取消匿名登录

  ‘start‘)
    # Start daemon

    # Safeguard (relative paths, core dumps..)
    cd $basedir

    echo $echo_n "Starting MySQL"
    if test -x $bindir/mysqld_safe
    then
      # Give extra arguments to mysqld with the my.cnf file. This script
      # may be overwritten at next upgrade.
      $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args>/dev/null 2>&1 &
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?

      # Make lock for RedHat / SuSE
      if test -w "$lockdir"
      then
        touch "$lock_file_path"
      fi

      exit $return_value
    else
      log_failure_msg "Couldn‘t find MySQL server ($bindir/mysqld_safe)"
    fi
    ;;

注意 mysqld_safe 启动指令后的 --skip-grant-tables 参数已经删除。

刷新服务文件并重启mysql服务:

systemctl daemon-reload
systemctl restart mysql

完成mysql的安装,并且已经可以通过root用户用指定的密码‘123456‘进行远程访问。

注:如果开启了防火墙,则可通过开启3306端口,或开启mysql服务的方式来配置firewalld:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-service=mysql --permanent
firewall-cmd --reload


MySQL主从复制配置:



明天来写...

时间: 2024-10-05 05:16:52

CentOS 7.2 安装配置mysql主从服务器的相关文章

配置mysql主从服务器

参考:https://www.linuxidc.com/Linux/2016-09/135633.htm 一.Master主服务器配置(192.168.1.3) 1.编辑my.cnf(命令查找文件位置:find / -name my.cnf) vi /etc/mysql/my.cnf 在[mysqld]中添加: server-id = 1 log_bin = master-bin log_bin_index = master-bin.index binlog_do_db = my_data bi

Centos 6.5 安装配置Mysql MHA

MHA是什么?MHA是由日本Mysql专家用Perl写的一套Mysql故障切换方案,来保障数据库的高可用性,它的功能是能在0-30s之内实现主Mysql故障转移(failover),MHA故障转移可以很好的帮我们解决从库数据的一致性问题,同时最大化挽回故障发生后数据的一致性.MHA里有两个角色一个是node节点 一个是manager节点,要实现这个MHA,必须最少要三台数据库服务器,一主多备,即一台充当master,一台充当master的备份机,另外一台是从属机,这里实验为了实现更好的效果使用四

CentOS 7 yum安装配置mysql

首先去官网下载要用的yum源 传送门:http://dev.mysql.com/downloads/repo/yum/ yum源文件:/home/mysql57-community-release-el7-8.noarch.rpm 是一个rpm包,如果是Gnome,可以选择centos7的软件包安装程序安装即可.也可以用命令的方式安装: rpm -ivh /home/mysql57-community-release-el7-8.noarch.rpm 使用yum search mysql查找与m

在阿里云的CentOS环境中安装配置MySQL

Welcome to Alibaba Cloud Elastic Compute Service ! [[email protected] ~]# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm Retrieving http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm Preparing... ###########

CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)

CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL) 一.准备篇: 1 /etc/init.d/iptables stop #关闭防火墙 2 关闭SELINUX 3 vi /etc/selinux/config 4 #SELINUX=enforcing #注释掉 5 #SELINUXTYPE=targeted #注释掉 6 SELINUX=disabled #增加 7 :wq 8 shutdown -r now #重启系统 二.安装篇 1.安装nginx 1 yum re

CentOS 6.6安装配置LAMP服务器(Apache+PHP5+MySQL)

准备篇: CentOS 6.6系统安装配置图解教程 http://www.osyunwei.com/archives/8398.html 1.配置防火墙,开启80端口.3306端口 vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

CentOS 6.3安装配置LAMP服务器(Linux+Apache+MySQL+PHP5)

服务器系统环境:CentOS 6.3 客户端系统环境:Windows 7 ultimate(x86)sp1 简体中文旗舰版 ※  本文档描述了如何在Linux服务器配置Apache.Mysql.PHP5 LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和

CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)

原文 CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB) 一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.安装iptables防火墙 yum insta

CentOS 7.0 安装配置LAMP服务器方法(Apache+PHP+MariaDB)

一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 2.安装iptables防火墙 yum install iptables-services #安装 vi /etc/sysconfig/ip