• MYSQL二进制5.7.安装


    一、下载MySQL二进制软件包

    下载连接:MYSQ安装包下载

    官网MySQL有四个版本:GA版、DMR版、RC版、Beta版。一般生产和测试环境使用GA版(常规可用的版本,经过bug修复测试)

    二、安装前系统环境检测

    1、SELinux和系统防火墙iptables需要关闭

    2、I/O调度系统默认是cfq模式,强烈建议使用deadline模式

    1. cat /sys/block/sda/queue/scheduler
    2. #cfq完全公平队列;noop电梯式调度;deadline截止时间调度

    3、swap分区的设置

    不分配swap或分配4GB的swap

    swappiness控制如何使用swap分区,0表示最大限度使用物理内存,然后才使用swap,可能导致内存溢出,导致MySQL被意外kill掉;100,积极使用swap,把内存数据及时搬到swap,不建议

    1. cat /proc/sys/vm/swappiness
    2. 编辑 /etc/sysctl.conf 加入vm.swappiess的值

    4、文件系统的选择 [xfs]

    5、操作系统限制

    1. ulinit -a
    2. open filesmax user processes,建议均设置为65535
    3. vim /etc/security/limits.conf
    4. * soft nproc 65535
    5. * hard nproc 65535
    6. * soft nofile 65535
    7. * hard nofile 65535

    6、numa需要关闭

    1. numa --interleave=all /usr/local/mysql/bin/mysqld_safe -defaults-file=/etc/my.cnf &

    关闭numa,可以更好地分配内存,不需要采用swap的方式来获取内存

    可以在BIOS、操作系统或者在数据库启动过程中关闭

    1. yum install numactl
    2. numastat -H lscpu

    三、开始进行安装

    1、对下载下来的软件包进行MD5校验,确保下载过程中没有任何的问题

    1. [root@wjq1 Packages]# md5sum mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
    2. 075dccd655e090ca999e2c8da3b67eb7 mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

    2、创建用户和组

    1. [root@wjq1 Packages]# groupadd mysql
    2. [root@wjq1 Packages]# useradd -g mysql mysql -s /sbin/nologin

    3、将软件包移到/usr/local目录下

    1. [root@wjq1 Packages]# mv mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz /usr/local/

    4、解压mysql软件包

    1. [root@wjq1 Packages]# cd /usr/local/
    2. [root@wjq1 local]# tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

    5、创建软连接,方便日后升级

    1. [root@wjq1 local]# ln -s mysql-5.7.24-linux-glibc2.12-x86_64 mysql

    6、创建mysql相关的目录并修改权限

    1. [root@wjq1 ~]# mkdir -p /data/mysql/3306/{data,log,tmp}
    2. [root@wjq1 ~]# chown -R mysql:mysql /usr/local/mysql
    3. [root@wjq1 ~]# chown -R mysql:mysql /data/mysql/

    7、编辑mysql的配置文件

    1. [root@wjq1 ~]# vim /etc/my.cnf
    2. [client]
    3. port=3306
    4. socket=/tmp/mysql3306.sock
    5.  
    6. [mysql]
    7. prompt=\U [\d]>
    8.  
    9. [mysqld]
    10. user=mysql
    11. basedir = /usr/local/mysql
    12. sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    13. character_set_server = utf8mb4
    14.  
    15. datadir=/data/mysql/3306/data
    16. port=3306
    17. server_id=330610
    18. socket=/tmp/mysql3306.sock
    19. log-output=file
    20. slow_query_log = 1
    21. long_query_time = 1
    22. slow_query_log_file = /data/mysql/3306/log/slow.log
    23. log-error = /data/mysql/3306/log/error.log
    24. pid-file = /data/mysql/3306/tmp/mysql3306.pid
    25. binlog_format = mixed
    26. log-bin = /data/mysql/3306/log/mysql3306.bin
    27.  
    28. #gtid-mode = ON
    29. #enforce-gtid-consistency = ON
    30. #log-slave-updates = ON

    8、初始化数据库

    1. [root@wjq1 ~]# cd /usr/local/mysql/bin/
    2. [root@wjq1 bin]# ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql/3306/data --user=mysql --initialize
    3. #--initialize参数,生成一个临时数据库初始密码,记录在log-error里面

    9、启动数据库

    1. [root@wjq1 bin]# ./mysqld_safe --defaults-file=/etc/my.cnf &
    2. [1] 7481
    3. [root@wjq1 bin]# 2018-11-05T07:10:36.482523Z mysqld_safe Logging to '/data/mysql/3306/log/error.log'.
    4. 2018-11-05T07:10:36.511901Z mysqld_safe Starting mysqld daemon with databases from /data/mysql/3306/data

    10、验证是否启动成功

    1. [root@wjq1 bin]# netstat -tuplan | grep mysqld
    2. tcp6 0 0 :::3306 :::* LISTEN 7739/mysqld

    11、修改root用户的密码

    1. [root@wjq1 ~]# cat /data/mysql/3306/log/error.log | grep password
    2. 2018-11-05T07:10:19.979308Z 1 [Note] A temporary password is generated for root@localhost: F?IJVgCaa1h4
    3.  
    4. [root@wjq1 bin]# ./mysql -u root -p
    5. Enter password:
    6. Welcome to the MySQL monitor. Commands end with ; or g.
    7. Your MySQL connection id is 2
    8. Server version: 5.7.24-log
    9.  
    10. Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
    11.  
    12. Oracle is a registered trademark of Oracle Corporation and/or its
    13. affiliates. Other names may be trademarks of their respective
    14. owners.
    15.  
    16. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    17.  
    18. root [(none)]>select user,host from mysql.user;
    19. ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    20.  
    21. root [(none)]>set password='XXXX@2019';
    22. Query OK, 0 rows affected (0.00 sec)

    四、MySQL数据库root密码丢失的问题

    (1)kill掉mysql进程(共两个进程)

    (2)重启mysql:./mysqld_safe –defaults-file=/etc/my.cnf –skip-grant-tables &

    (3)连接到mysql

    (4)设置新的密码并刷新权限

    use mysql

    update user set authentication_string=password(‘root123′) where user=’root’;

    flush privileges;

    (5)重启数据库

  • 相关阅读:
    Trimmomatic 软件的安装
    linux 中提取不以指定字符结尾的数据
    常用的前端JavaScript方法封装
    API 与 SDK 之间的区别
    常用的Lambda表达式案例解析,工作中都会用到!
    【动手实战】你真的会用 Stream ?来试试看!
    详解js中的对象的深浅拷贝
    轻松拿下 JS 浅拷贝、深拷贝
    程序员必备:Git入门,超详细
    SpringCloud Gateway API接口加解密
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/10435318.html
Copyright © 2020-2023  润新知