zoukankan      html  css  js  c++  java
  • centos7安装mysql5.7(或8)压缩包式安装

    centos7安装mysql5.7压缩包式安装

    1.上传压缩包至/kht文件夹下,并解压后名称改为mysql5.7
    2.在mysql5.7下新建mkdir sock log tmp data
    my.cnf文件内容如下:
    [client]
    #SSL Settings
    ssl-ca=/kht/mysql5.7/data/ca.pem
    ssl-cert=/kht/mysql5.7/data/client-cert.pem
    ssl-key=/kht/mysql5.7/data/client-key.pem
    
    #设置3306端口
    port = 3306
    #设置mysql客户端默认字符集
    default-character-set=utf8
    #mysql以socket方式运行的sock文件位置
    #socket=/var/lib/mysql/mysql.sock
    socket=/kht/mysql5.7/sock/mysql.sock
    
    [mysqld]
    #SSL Settings
    ssl-ca=/kht/mysql5.7/data/ca.pem
    ssl-cert=/kht/mysql5.7/data/server-cert.pem
    ssl-key=/kht/mysql5.7/data/server-key.pem
    
    #时区加8小时
    default-time-zone='+8:00'
    #跳过权限表校验,忘记密码时使用
    #skip-grant-tables
    #禁用DNS解析,只能用ip访问
    skip-name-resolve
    #设置3306端口
    port = 3306
    #设置mysql的安装目录
    basedir=/kht/mysql5.7
    #设置mysql数据库的数据的存放目录
    datadir=/kht/mysql5.7/data
    #mysql以socket方式运行的sock文件位置
    #socket=/var/lib/mysql/mysql.sock
    socket=/kht/mysql5.7/sock/mysql.sock
    #mysql存放临时文件的目录
    tmpdir=/kht/mysql5.7/tmp 
    #设置日志的时区,错误日志默认是使用utc时间,可以修改为系统时间方便查看
    log_timestamps=SYSTEM
    #错误日志位置
    log-error=/kht/mysql5.7/log/mysqld.log
    #log_error_verbosity记录mysql的日志级别,1只记录ERROR级别的日志,2记录ERROR和warining信息,3记录ERROR和warning和一般的信息如NOTE级别
    log_error_verbosity=3
    #慢查询日志,1表示开启,0关闭
    slow_query_log=1
    #慢查询日志存放位置
    slow_query_log_file=/kht/mysql5.7/log/mysql_slow.log
    #慢查询的时间,单位秒,条件是大于
    long_query_time=0.01
    #慢查询默认FILE,是记录到文件中,TABLE是存入mysql.slow_log表中。2者可同时存在,以逗号分隔,存入到表中,更耗资源
    log_output=FILE
    #进程id文件
    pid-file=/kht/mysql5.7/sock/mysqld.pid
    #是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
    symbolic-links=0
    #mysql监听的ip地址,如果是127.0.0.1,表示仅本机访问
    #bind_address = 127.0.0.1
    #数据修改是否自动提交,为0不自动提交,默认值为1自动提交
    autocommit = 1
    #禁用DNS主机名查找,启用以后用内网地址向mysqlslap请求响应快了一半
    #skip_name_resolve = 1
    #允许最大连接数
    max_connections=200
    #服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    #某台host连接错误次数等于max_connect_errors(默认10),主机'host_name'再次尝试时被屏蔽。可有效反的防止dos攻击
    max_connect_errors = 2
    #mysql最大接受的数据包大小
    max_allowed_packet = 16M
    
    #lower_case_table_names=0的情况下,表名是严格区分大小写的,为1时,不区分大小写
    #linux下lower_case_table_names默认值为0.Windows下默认值是1.MacOS下默认值是 2
    lower_case_table_names=1
    #sql_mode是一组语法校验规则
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    #创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    #mysql连接超时时间,默认10s
    connect_timeout=11
    #mysql连接如果空闲超8小时,则连接中断,默认是8小时,即28800秒,用show global variables like '%timeout%';查询全局
    #对于非交互式连接,类似于jdbc连接,wait_timeout的值继承自服务器端全局变量wait_timeout。
    wait_timeout=20000
    #对于交互式连接,类似于mysql客户单连接,wait_timeout的值继承自服务器端全局变量interactive_timeout。默认是8小时,即28800秒.
    interactive_timeout=20001
    #mysql启动用户
    user=root
    #表中的timestamp列,如果没有定义为null,default值或者on update,会自动分配default current_timestamp和on update current_timestamp属性
    explicit_defaults_for_timestamp=true
    
    3.查找rpm -qa|grep libaio
    安装 yum install  libaio-devel.x86_64 -y
    4.在bin目录下执行:
    ./mysqld --initialize --user=root --basedir=/kht/mysql5.7 --datadir=/kht/mysql5.7/data
    5.记录初始化的密码,并完成密码修改。启动报错时,新建对应的目录
    5.修改support-files/mysql.server 文件的内容为对应的所在目录。
    6.设置mysql为systemct start mysql方式启动
    将服务文件拷贝到init.d下,并重命名为mysql:
    cp /kht/mysql5.7/support-files/mysql.server /etc/init.d/mysql -r
    赋予可执行权限:chmod +x /etc/init.d/mysql
    添加服务:chkconfig --add mysql
    显示服务列表:chkconfig --list (3.4.5都是on状态,服务器重启后生效)
    7.配置mysql的环境变量vim /etc/profile export PATH=$PATH:/kht/mysql5.7/bin
    8.修改登录密码:
     mysql>alter user 'root'@'localhost' identified by 'kht123';
    9.授予远程登录权限:
     mysql>grant all privileges on *.* to 'root'@'%' identified by 'kht123' with grant option;
    刷新权限(切勿忘记关闭防火墙):
    mysql>flush privileges;
    10. mysql> select host,user from user;
    +-----------+------------------+
    | host      | user             |
    +-----------+------------------+
    | localhost | mysql.infoschema |
    | localhost | mysql.session    |
    | localhost | mysql.sys        |
    | localhost | root             |
    +-----------+------------------+
    发现root用户的访问权限是localhost,需要修改host为%,输入命令:
    update user set host='%' where user='root';
    mysql>flush privileges;
    
    1.如提示如下错误:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111)
    2.增加软连接:
    ln -s /kht/mysql5.7/sock/mysql.sock /tmp/mysql.sock
    3.mysql -uroot -h 127.0.0.1 -p   和  mysql -uroot -p 都可以进入mysql命令行
    
    数据库备份
    mysqldump.sh文件内容:
    mysqldump --socket=/var/lib/mysql/mysql.sock -h'localhost' -P3306 -uroot -p'123' mysql --default-character-set=utf8 | gzip > /kht/mysql5.7/back/lims_$(date "+%Y%m%d%H%M%S").sql.gz
    
    1.如果之前有安装过mysql8,先卸载
    yum remove  mysql mysql-server mysql-libs mysql-server -y;
    rm -rf /var/log/mysqld.log;
    find / -name mysql; // 找到有关系统的mysql,有rm -rf 删除,如下
    rm -rf /etc/logrotate.d/mysql ;
    rm -rf /etc/selinux/targeted/active/modules/100/mysql /etc/selinux/targeted/tmp/modules/100/mysql;
    rm -rf /var/lib/pcp/config/pmlogconf/mysql /var/lib/mysql;
    rm -rf /var/lib/mysql/mysql /usr/bin/mysql /usr/lib64/mysql;
    

    mysql8的配置文件

    [client]
    #SSL Settings
    ssl-ca=/kht/mysql8/data/ca.pem
    ssl-cert=/kht/mysql8/data/client-cert.pem
    ssl-key=/kht/mysql8/data/client-key.pem
    
    #设置3306端口
    port = 3306
    #设置mysql客户端默认字符集
    default-character-set=utf8
    #mysql以socket方式运行的sock文件位置
    #socket=/var/lib/mysql/mysql.sock
    socket=/kht/mysql8/sock/mysql.sock
    
    [mysqld]
    #SSL Settings
    ssl-ca=/kht/mysql8/data/ca.pem
    ssl-cert=/kht/mysql8/data/server-cert.pem
    ssl-key=/kht/mysql8/data/server-key.pem
    
    #时区加8小时
    default-time-zone='+8:00'
    #跳过权限表校验,忘记密码时使用
    #skip-grant-tables
    #禁用DNS解析,只能用ip访问
    skip-name-resolve
    #设置3306端口
    port = 3306
    #设置mysql的安装目录
    basedir=/kht/mysql8
    #设置mysql数据库的数据的存放目录
    datadir=/kht/mysql8/data
    #mysql以socket方式运行的sock文件位置
    #socket=/var/lib/mysql/mysql.sock
    socket=/kht/mysql8/sock/mysql.sock
    #mysql存放临时文件的目录
    tmpdir=/kht/mysql8/tmp 
    #设置日志的时区,错误日志默认是使用utc时间,可以修改为系统时间方便查看
    log_timestamps=SYSTEM
    #错误日志位置
    log-error=/kht/mysql8/log/mysqld.log
    #log_error_verbosity记录mysql的日志级别,1只记录ERROR级别的日志,2记录ERROR和warining信息,3记录ERROR和warning和一般的信息如NOTE级别
    log_error_verbosity=3
    #慢查询日志,1表示开启,0关闭
    slow_query_log=1
    #慢查询日志存放位置
    slow_query_log_file=/kht/mysql8/log/mysql_slow.log
    #慢查询的时间,单位秒,条件是大于
    long_query_time=0.01
    #慢查询默认FILE,是记录到文件中,TABLE是存入mysql.slow_log表中。2者可同时存在,以逗号分隔,存入到表中,更耗资源
    log_output=FILE
    #进程id文件
    pid-file=/kht/mysql8/sock/mysqld.pid
    #是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
    symbolic-links=0
    #mysql监听的ip地址,如果是127.0.0.1,表示仅本机访问
    #bind_address = 127.0.0.1
    #数据修改是否自动提交,为0不自动提交,默认值为1自动提交
    autocommit = 1
    #禁用DNS主机名查找,启用以后用内网地址向mysqlslap请求响应快了一半
    #skip_name_resolve = 1
    #允许最大连接数
    max_connections=200
    #服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    #某台host连接错误次数等于max_connect_errors(默认10),主机'host_name'再次尝试时被屏蔽。可有效反的防止dos攻击
    max_connect_errors = 2
    #mysql最大接受的数据包大小
    max_allowed_packet = 16M
    
    #lower_case_table_names=0的情况下,表名是严格区分大小写的,为1时,不区分大小写
    #linux下lower_case_table_names默认值为0.Windows下默认值是1.MacOS下默认值是 2
    #mysql8初始化之前设置后不可修改默认值
    #lower_case_table_names=1
    #sql_mode是一组语法校验规则
    #sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    #创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    #mysql连接超时时间,默认10s
    connect_timeout=11
    #mysql连接如果空闲超8小时,则连接中断,默认是8小时,即28800秒,用show global variables like '%timeout%';查询全局
    #对于非交互式连接,类似于jdbc连接,wait_timeout的值继承自服务器端全局变量wait_timeout。
    wait_timeout=20000
    #对于交互式连接,类似于mysql客户单连接,wait_timeout的值继承自服务器端全局变量interactive_timeout。默认是8小时,即28800秒.
    interactive_timeout=20001
    #mysql启动用户
    user=root
    #表中的timestamp列,如果没有定义为null,default值或者on update,会自动分配default current_timestamp和on update current_timestamp属性
    explicit_defaults_for_timestamp=true
    

    特殊符号远程授权
    create user 'root'@'%' identified with mysql_native_password by 'password@123mysql';
    grant all privileges on . to 'root'@'%' with grant option;
    flush privileges;
    查看密码策略
    SHOW VARIABLES LIKE 'validate_password%';
    修改密码策略
    set global validate_password.policy=0;

    CREATE USER 'root'@'%' IDENTIFIED BY 'password@123mysql';
    GRANT ALL ON . TO 'root'@'%';
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password@123mysql';

  • 相关阅读:
    一个非侵入的Go事务管理库——如何使用
    事件驱动的微服务-事件驱动设计
    事件驱动的微服务-总体设计
    如何快速高效率地学习Go语言
    清晰架构(Clean Architecture)的Go微服务
    清晰架构(Clean Architecture)的Go微服务: 编码风格
    清晰架构(Clean Architecture)的Go微服务: 事物管理
    清晰架构(Clean Architecture)的Go微服务: 依赖注入(Dependency Injection)
    msf stagers开发不完全指北(四): msf 中使用域前置技术隐藏流量
    elementui 表格中带有按钮的loading解决方案
  • 原文地址:https://www.cnblogs.com/khtt/p/15211729.html
Copyright © 2011-2022 走看看