您好,欢迎来到互劦cms 官方网站-内容管理系统,让你体验不一样的建站方式,更简单,更安全,更灵活
  • 登陆-注册
  • 使用手册
  • 常见问题
  • 全国服务热线:18173153117

    linux操作->CentOS 7安装 mysql 5.7
  • CentOS 7安装 mysql 5.7
  • 浏览次数:329 作者:旭日东升 日期:2019-05-22 14:13:38
  • 安装mysql 5.7 作者测试,绝对可行

    1.卸载  先停掉mysql进程   没有安装过的可以直接跳过

            pkill -9 mysqld


     rpm -qa|grep -i mysql


     用命令 yum -y remove

          yum -y remove mysql-community-client-5.6.38-2.el7.x86_64

          卸载不掉的用 rpm -ev 

          依次卸载 直到没有


    2.下载mysql的repo源 这个安装的mysql5.7.20  /**纠正一下,这源下载的是最新的版本  ****/


       [root@localhost ~]# cd /usr/local/src/

       [root@localhost src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 


       [root@localhost src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm 


       [root@localhost src]#  yum -y install mysql-server 


    (也可以指定安装目录     yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server  )我没试,这样装环境变量配置都不用你管,装上直接启动就行。安装路径是默认的。


    一路 y 

    根据步骤安装就可以了,


    默认配置文件路径: 

    配置文件:/etc/my.cnf 

    日志文件:/var/log/var/log/mysqld.log 

    服务启动脚本:/usr/lib/systemd/system/mysqld.service 

    socket文件:/var/run/mysqld/mysqld.pid


     


      配置  my.cnf        vim /etc/my.cnf


    [mysqld]

    #

    # Remove leading # and set to the amount of RAM for the most important data

    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

    # innodb_buffer_pool_size = 128M

    #

    # Remove leading # to turn on a very important data integrity option: logging

    # changes to the binary log between backups.

    # log_bin

    #

    # Remove leading # to set options mainly useful for reporting servers.

    # The server defaults are faster for transactions and fast SELECTs.

    # Adjust sizes as needed, experiment to find the optimal values.

    # join_buffer_size = 128M

    # sort_buffer_size = 2M

    # read_rnd_buffer_size = 2M

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    server_id = 1

    expire_logs_days = 3

     

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0

     

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

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

    不过安装完成后,密码为随机密码,需要重置密码。

     

     

    4.  启动mysql服务

    service mysqld restart

     重置密码

        [root@localhost ~]# grep "password" /var/log/mysqld.log    

     可以看到  输入 mysql -u root -p   密码 进入      第一次登陆 ,需要重置密码 要不什么也不能操作 


      接下来重置密码:5.7.20 为了安全密码           必须包含 数字字母符号


          踩过的坑啊,设置了好几次。还有这ip不能是% 不知道为什么  反正第一次设置成%没成功  登上去之后再改就可以改了。


           把密码改简单的方法 http://blog.csdn.net/z13615480737/article/details/78907697


          alter user 'root'@'localhost' identified by '123456';

    如果修改密码报错  

    2,然后执行 mysql -uroot -p ,输入上面的到的密码进入,用该密码登录后,必须马上修改新的密码,不然会报如下错误:


    mysql> use mysql;

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.


    1

    2

    3

    3,如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求


    mysql> alter user 'root'@'localhost' identified by '123456';

    ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


    1

    2

    3

    .

    这个其实与validate_password_policy的值有关。


    validate_password_policy有以下取值:


    默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

    有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

    必须修改两个全局参数:


    首先,修改validate_password_policy参数的值


    mysql> set global validate_password_policy=0;

    Query OK, 0 rows affected (0.00 sec)

    1

    2

    validate_password_length(密码长度)参数默认为8,我们修改为1


    mysql> set global validate_password_length=1;

    Query OK, 0 rows affected (0.00 sec)

    1

    2

    4,完成之后再次执行修改密码语句即可成功


    mysql> alter user 'root'@'localhost' identified by '123456';

    Query OK, 0 rows affected (0.00 sec)


    开机启动:

    systemctl enable mysqld
    systemctl daemon-reload

    配置默认编码为utf8: 

    修改/etc/my.cnf配置文件:


    vim /etc/my.cnf

    1

    在[mysqld]下添加编码配置,如下所示:


    [mysqld]

    character_set_server=utf8

    init_connect='SET NAMES utf8'

    1

    2

    3

    4

    重新启动mysql服务,查看数据库默认编码:


    systemctl restart mysqld

    show variables like '%character%';


    远程连接设置 

    默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户。 

    把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户:


    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Root_Pass1' WITH GRANT OPTION;

    1

    打开3306端口:


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

    1

    重启防火墙:


    firewall-cmd --reload

    1

    2

    查看已开放的端口:


    firewall-cmd --list-ports


    centos7版本对防火墙进行 加强,不再使用原来的iptables,启用firewall


    1.查看已开放的端口(默认不开放任何端口)

    firewall-cmd --list-ports

    2.开启80端口

    firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效)

    3.重启防火墙

    firewall-cmd --reload

    4.停止防火墙

    systemctl stop firewalld.service

    5.禁止防火墙开机启动

    systemctl disable firewalld.service

    6.删除

    firewall-cmd --zone= public --remove-port=80/tcp --permanent

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    centos7以下版本


    1.开放80,22,8080 端口

    /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT

    /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

    2.保存

    /etc/rc.d/init.d/iptables save

    3.查看打开的端口

    /etc/init.d/iptables status

    4.关闭防火墙 

    1) 永久性生效,重启后不会复原

    开启: chkconfig iptables on

    关闭: chkconfig iptables off

    2) 即时生效,重启后复原

    开启: service iptables start

    关闭: service iptables stop

    此时就可以远程连接了 

    如果是新用户而不是root,则要先新建用户并设置外网授权链接:


    create user 'username'@'%' identified by 'password';

    grant all privileges on *.* to 'username'@'%' identified by 'dev_123456';

    flush privileges;   


    1

    二、 主从配置: 

    1.确保主数据库与从数据库里的数据一样 

    主数据库里的a的数据库里有b,c,d表,那从数据库里的就应该有一个模子刻出来的a的数据库和b,c,d表,这里在两台MySQL上都创建了个名为“test”的数据库来测试,如图: 



    2.在主数据库里创建一个同步账号 

    每个从数据库会使用一个MySQL账号来连接主数据库,所以我们要在主数据库里创建一个账号,并且该账号要授予 REPLICATION SLAVE 权限,你可以为每个从数据库分别创建账号,当然也可以用同一个!你可以用原来的账号不一定要新创账号,但你应该注意,这个账号和密码会被明文存放在master.info文件中,因此建议单独创一个只拥有相关权限的账号,以减少对其它账号的危害!创建新账号使用“CREATE USER”,给账号授权使用“GRANT”命令,如果你仅仅为了主从复制创建账号,只需要授予REPLICATION SLAVE权限。 

    创建一个账号(repl,repl_Pass1):


    create user 'repl'@'%' identified by 'repl_Pass1';

    1

    授予REPLICATION SLAVE权限:


    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

    1

    3.配置主数据库 

    要主数据库,你必须要启用二进制日志(binary logging),并且创建一个唯一的Server ID,这步骤可能要重启MySQL。 

    主服务器发送变更记录到从服务器依赖的是二进制日志,如果没启用二进制日志,复制操作不能实现(主库复制到从库)。 

    复制组中的每台服务器都要配置唯一的Server ID,取值范围是1到(232)−1,你自己决定取值。 

    配置二进制日志和Server ID,你需要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。 

    编辑my.cnf:


    vi /etc/my.cnf

    1

    在[mysqld]中添加:


    server-id = 1

    log_bin = master-bin

    log_bin_index = master-bin.index

    binlog_do_db = test

    binlog_ignore_db = mysql

    1

    2

    3

    4

    5

    6

    备注:server-id 服务器唯一标识,log_bin 启动MySQL二进制日志,binlog_do_db 指定记录二进制日志的数据库,binlog_ignore_db 指定不记录二进制日志的数据库。 

    重启mysql:


    systemctl restart mysqld

    1

    登录MySQL状态下,查看主服务器状态:


    show master status;


    注意:master-bin.000002和154这两个值要记录下来


    4.配置从数据库 

    编辑my.cnf:


    vi /etc/my.cnf

    1

    2

    在[mysqld]下添加:


    server-id = 2

    relay-log = slave-relay-bin

    relay-log-index = slave-relay-bin.index

    1

    2

    3

    4

    重启mysql:


    systemctl restart mysqld

    1

    在slave服务器中登陆mysql,连接master主服务器数据库


    change master to master_host='192.168.192.111', master_port=3306, master_user='repl', master_password='repl_Pass1', master_log_file='master-bin.000002', master_log_pos=154;

    1

    启动slave:


    start slave;

    1

    2

    查看slave信息: 


    5.测试 
    在主库(192.168.192.111)中新建表STUDENT并插入数据,从库(192.168.192.110)就同步了,如图: 

  • 上一篇:centos 7.6 安装php 7.2.4 下一篇:安装ssh
  • 站内地图

    Copyright 2018-2028 hlcms. All Rights Reserved. 湘ICP备13008873号-1