zoukankan      html  css  js  c++  java
  • ceshimd

    二进制安装

    下载解压 MySQL

    链接:MySQL 下载 提取码:bc52

    • 将下载的 mysql 通过文件传输工具移到 /usr/local

    • 解压 : tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

    • 删除源码包 : rm -f mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

    • 修改文件名 : mv mysql-5.7.21-linux-glibc2.12-x86_64/ mysql

    • 进入mysql创建 data 文件夹log 文件夹 : cd mysql/ && mkdir data && mkdir log

    清除历史环境

    [root@bogon mysql]# rpm -qa |grep mariadb
    mariadb-libs-5.5.44-2.el7.centos.x86_64
    
    [root@bogon mysql]# yum remove mariadb-libs.x86_64 -y
    

    创建 mysql 用户组和 mysql 用户

    #查看有没有mysql组
    [root@localhost mysql]# cat /etc/group | grep mysql
    #查看有没有mysql用户
    [root@localhost mysql]# cat /etc/passwd |grep mysql
    #创建mysql用户组
    [root@localhost mysql]# groupadd mysql
    #创建mysql用户并添加到mysql用户组中(//useradd -r参数表示mysql用户是系统用户,不可用于登录系统;第一个mysql是用户组,第二个mysql是用户)
    [root@localhost mysql]# useradd -r -g mysql mysql
    #检查用户组是否创建成功
    [root@localhost mysql]# groups mysql
    mysql : mysql
    

    设置 mysql 目录访问权限,用户组

    #将mysql目录访问权限赋为myql用户
    [root@localhost mysql]# chown -R mysql /usr/local/mysql
    #改变mysql目录的用户组属于mysql组
    [root@localhost mysql]# chgrp -R mysql /usr/local/mysql
    #查看mysql目录下所有的目录及文件夹所属组合用户
    [root@bogon mysql]# cd /usr/local/mysql && ll
    总用量 40
    drwxr-xr-x.  2 mysql mysql  4096 7月  17 11:23 bin
    -rw-r--r--.  1 mysql mysql 17987 12月 28 2017 COPYING
    drwxr-xr-x.  2 mysql mysql     6 7月  19 15:47 data
    drwxr-xr-x.  2 mysql mysql    52 7月  17 11:24 docs
    drwxr-xr-x.  3 mysql mysql  4096 7月  17 11:23 include
    drwxr-xr-x.  5 mysql mysql  4096 7月  17 11:24 lib
    drwxr-xr-x.  2 mysql mysql     6 7月  19 15:47 log
    drwxr-xr-x.  4 mysql mysql    28 7月  17 11:23 man
    -rw-r--r--.  1 mysql mysql  2478 12月 28 2017 README
    drwxr-xr-x. 28 mysql mysql  4096 7月  17 11:24 share
    drwxr-xr-x.  2 mysql mysql    86 7月  17 11:24 support-files
    

    修改环境变量

    #配置环境变量
    [root@bogon mysql]# vim /etc/profile
    export PATH=/usr/local/mysql/bin:$PATH
    #生效配置
    [root@bogon mysql]# source /etc/profile
    #验证mysql
    [root@bogon mysql]# mysql -V
    mysql  Ver 14.14 Distrib 5.7.21, for linux-glibc2.12 (x86_64) using  EditLine wrapper
    

    初始化 mysql

    5.7 版本

    [root@localhost mysql]# cd /usr/local/mysql/ && bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
    2020-02-24T15:20:51.505520Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-02-24T15:21:16.611890Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2020-02-24T15:21:20.895476Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2020-02-24T15:21:21.075717Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 4facfa2a-5719-11ea-9d4a-000c291546c6.
    2020-02-24T15:21:21.119139Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2020-02-24T15:21:21.162719Z 1 [Note] A temporary password is generated for root@localhost: Rzm%WwopR0yp
    

    可能会报错: bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

    原因:yum安装的是libnuma.so.1,但安装时默认安装的是32位的,而db2需要的是64位的

    #如果已经安装了libnuma.so.1,先yum remove libnuma.so.1
    yum remove libnuma.so.1
    #安装依赖包
    yum -y install numactl.x86_64
    

    5.6 版本

    [root@localhost mysql]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
    

    配置文件设置

    [root@bogon mysql]# vim /etc/my.cnf
    
    [mysqld]
    user=mysql
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    server_id=1
    port=3306
    socket=/tmp/mysql.sock
    [mysql]
    socket=/tmp/mysql.sock
    

    配置启动脚本

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    

    启动 mysql

    [root@bogon mysql]# service mysql start
    Starting MySQL.Logging to '/usr/local/mysql/data/bogon.err'.
     SUCCESS!
    
    
    #查看mysql状态
    /etc/init.d/mysql status 或者 service mysql status
    #启动mysql
    /etc/init.d/mysql start 或者 service mysql start
    #停止mysql
    /etc/init.d/mysql stop 或者 service mysql stop
    #重新启动mysql
    /etc/init.d/mysql restart 或者 service mysql restart
    #查看mysql服务说明启动成功
    ps -ef|grep mysql
    

    配置 mysql 到环境变量

    [root@bogon ~]# vi /root/.bash_profile
    
    # .bash_profile
    
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
            . ~/.bashrc
    fi
    
    # User specific environment and startup programs
    export MYSQL_HOME=/usr/local/mysql/bin
    PATH=$PATH:$HOME/bin::${MYSQL_HOME}
    
    export PATH
    
    
    #设置环境变量立即生效
    [root@localhost tmp]# source /root/.bash_profile
    

    重置密码

    mysql> ALTER USER USER() IDENTIFIED BY '123';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> quit;
    Bye
    

    退出使用设置的密码重新登录

    添加远程访问账号

    mysql> grant all privileges on *.* to 'root'@"%" identified by '123';
    Query OK, 0 rows affected, 1 warning (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.02 sec)
    

    开放3306端口

    [root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    success
    [root@localhost mysql]# firewall-cmd --reload
    success
    

    多实例

    准备多个数据日志目录

    [root@bogon /]# mkdir -p /data/330{7,8,9}/data
    [root@bogon /]# mkdir -p /log/330{7,8,9}
    

    准备配置文件

    cat > /data/3307/my.cnf <<EOF
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3307/data
    socket=/tmp/mysql3307.sock
    log_error=/data/3307/mysql.log
    port=3307
    server_id=7
    log_bin=/data/3307/mysql-bin
    EOF
    
    cat > /data/3308/my.cnf <<EOF
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3308/data
    socket=/tmp/mysql3308.sock
    log_error=/data/3308/mysql.log
    port=3308
    server_id=8
    log_bin=/data/3308/mysql-bin
    EOF
    
    cat > /data/3309/my.cnf <<EOF
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/data/3309/data
    socket=/tmp/mysql3309.sock
    log_error=/data/3309/mysql.log
    port=3309
    server_id=9
    log_bin=/data/3309/mysql-bin
    EOF
    

    授权目录权限

    [root@bogon data]# chown -R mysql.mysql /data/* /log/*
    

    将原有配置文件设置为备份文件

    [root@bogon log]# mv /etc/my.cnf /etc/my.cnf.bak
    

    初始化三套数据

    [root@bogon /]# cd /usr/local/mysql/
    
    [root@bogon mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/3307/data
    =/data/3309/data2020-07-19T13:04:19.622157Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-07-19T13:04:19.911293Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2020-07-19T13:04:19.965577Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2020-07-19T13:04:20.033509Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5bdcfe6e-c9c0-11ea-b3cf-000c297d79ef.
    2020-07-19T13:04:20.034703Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2020-07-19T13:04:20.038381Z 1 [Note] A temporary password is generated for root@localhost: AyLafdD>7+?U
    [root@bogon mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/3308/data
    2020-07-19T13:04:23.193064Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-07-19T13:04:23.670815Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2020-07-19T13:04:23.744085Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2020-07-19T13:04:23.807425Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5e1cd94b-c9c0-11ea-b528-000c297d79ef.
    2020-07-19T13:04:23.808725Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2020-07-19T13:04:23.812885Z 1 [Note] A temporary password is generated for root@localhost: (C+(Inkut6A&
    [root@bogon mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/3309/data
    2020-07-19T13:04:40.336162Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2020-07-19T13:04:41.433808Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2020-07-19T13:04:41.582865Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2020-07-19T13:04:41.643617Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 68be6f77-c9c0-11ea-b64c-000c297d79ef.
    2020-07-19T13:04:41.645015Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2020-07-19T13:04:41.646244Z 1 [Note] A temporary password is generated for root@localhost: ew6f;)7b(ygF
    

    systemd 管理多实例

    [root@bogon systemd]# cat > /etc/systemd/system/mysqld3307.service <<EOF
    > [Unit]
    > Description=MySQL Server
    > Documentation=man:mysqld(8)
    > Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    > After=network.target
    > After=syslog.target
    > [Install]
    > WantedBy=multi-user.target
    > [Service]
    > User=mysql
    > Group=mysql
    > ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3307/my.cnf
    > LimitNOFILE = 5000
    > EOF
    ttp://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
    LimitNOFILE = 5000
    E[root@bogon systemd]#
    [root@bogon systemd]# cat > /etc/systemd/system/mysqld3308.service <<EOF
    > [Unit]
    > Description=MySQL Server
    > Documentation=man:mysqld(8)
    > Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    > After=network.target
    > After=syslog.target
    > [Install]
    > WantedBy=multi-user.target
    > [Service]
    > User=mysql
    > Group=mysql
    > ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
    > LimitNOFILE = 5000
    > EOF
    [root@bogon systemd]#
    [root@bogon systemd]# cat > /etc/systemd/system/mysqld3309.service <<EOF
    > [Unit]
    > Description=MySQL Server
    > Documentation=man:mysqld(8)
    > Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
    > After=network.target
    > After=syslog.target
    > [Install]
    > WantedBy=multi-user.target
    > [Service]
    > User=mysql
    > Group=mysql
    > ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3309/my.cnf
    > LimitNOFILE = 5000
    > EOF
    
    

    启动

    [root@bogon system]# systemctl start mysqld3307.service && systemctl start mysqld3308.service && systemctl start mysqld3309.service
    

    验证多实例

    [root@bogon system]# netstat -lnp|grep 330
    tcp6       0      0 :::3307                 :::*                    LISTEN      46793/mysqld
    tcp6       0      0 :::3308                 :::*                    LISTEN      46799/mysqld
    tcp6       0      0 :::3309                 :::*                    LISTEN      46805/mysqld
    unix  2      [ ACC ]     STREAM     LISTENING     176408   46793/mysqld         /tmp/mysql3307.sock
    unix  2      [ ACC ]     STREAM     LISTENING     176411   46805/mysqld         /tmp/mysql3309.sock
    unix  2      [ ACC ]     STREAM     LISTENING     176405   46799/mysqld         /tmp/mysql3308.sock
    
    

    登陆多实例

    #多实例的登录一定要指定特定的socket
    [root@bogon system]# mysql -uroot -p'AyLafdD>7+?U'  -S /tmp/mysql3307.sock
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 3
    Server version: 5.7.21-log
    
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>
    
  • 相关阅读:
    more命令
    mktemp命令
    有效的括号字符串
    mc命令
    字符串相加
    Vue中虚拟DOM的理解
    chattr命令
    记近一年线上项目经验及架构变更记录
    微博AnalysisQl动态数据视图元数据设计
    搭建prometheus+grafana监控SpringBoot应用入门
  • 原文地址:https://www.cnblogs.com/yhq-qhh/p/13497238.html
Copyright © 2011-2022 走看看