zoukankan      html  css  js  c++  java
  • Mysql8.0版二进制安装(my.cnf文件灵活编写)

    新版本mysql二进制安装遇到不少坑(慢慢磨合吧)

    系统环境:centos7.6   

    这里我安装的是mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz      (官网有各种大小的包,这里我下载的是二进制的包,便于修改配置)

    官网下载:https://dev.mysql.com/downloads/mysql/

     下载好后,开始安装:

    1,第一步 先卸载可能会影响安装的包

    [root@localhost ~]# rpm -q mysql mysql-server mariadb mariadb-server

    未安装软件包 mysql

    未安装软件包 mysql-server

    未安装软件包 mariadb

    未安装软件包 mariadb-server

    如果出现没有卸载的包,需全部卸载

    2,第二步上传mysql8.0.21这个包,开始安装 

    #tar xf mysql-8.0.21-linux-glibc2.17-x86_64-minimal.tar.xz -C /usr/local/                           //这里解压到/usr/local下

    #cd /usr/local        

    #mv mysql-8.0.21-linux-glibc2.17-x86_64-minimal/ mysql                                                //改个名

    #useradd -M -s /sbin/nologin mysql                                                                                   //创建个用户

    #chown -R mysql:mysql /usr/local/mysql/                                                                         //给个权限

    #/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize                //初始化一下数据库(记住初始密码!)

    3,第二步,修改my.conf配置文件

    -----这里先对配置文件进行一个说明(适用于实际生成环境下)--------

    [mysqld]
    # 监听端口
    port=3306
    # 安装目录
    basedir=/usr/local/mysql
    # 数据目录
    datadir=/usr/local/mysql/data
    # 最大连接数
    max_connections = 100
    # 默认数据库引擎
    default-storage-engine = InnoDB
    # 字符集
    character-set-server=utf8
    # 错误日志
    log-error = /usr/local/mysql/log/error.log
    # 开启慢日志
    slow_query_log = 1
    # 慢查询日志时间阈值 默认是10S
    long-query-time = 30
    # 慢查询日志存放路径
    slow_query_log_file =  /usr/local/mysql/log/show.log
    # 记录那些由于查找了多余1000次而引发的慢查询
    min_examined_row_limit = 1000
    # 记录由Slave所产生的慢查询
    log-slow-slave-statements
    # 如果运行的SQL语句没有使用索引,则将这条SQL语句记录到慢查询日志文件中
    log-queries-not-using-indexes

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

    这里我没有用到以上配置修改,只针对此次演示做了简单配置,如下:

    [mysqld]
    datadir=/usr/local/mysql/data
    socket=/tmp/mysql.sock
    symbolic-links=0
    [mysqld_safe]
    log-error=/usr/local/mysql/data/mysql.log
    pid-file=/usr/local/mysql/data/mysql.pid
    #
    !includedir /etc/my.cnf.d
     
    4,第四步,做启动文件
     
    #cd /usr/local/mysql/support-files
    #cp mysql.server /etc/init.d/mysqld
    #chmod +x /etc/init.d/mysqld
    #chkconfig --add mysqld
    #ln -s /usr/local/mysql/bin/* /usr/local/bin/
    #systemctl start mysqld                                                         //启动mysql
     
     
     
    5,第五步,修改密码(注:这里我遇到一个问题,修改密码时总有报错,之后上网查后,是mysql8.0变得更加”严谨“了!密码要复杂的,不然不能修改!)

    (我是为了测试,这里我没再往下修改密码了,我选择放空密码,但Mysqladmin不能直接放空密码,没办法,新版本严谨性还是很强的!)

    6,第六步,其实到第五步,mysql的安装就已经完成了,这里我是不服“严谨”,选择跳过验证,进入mysql将密码放空!
    [root@localhost ~]# systemctl stop mysqld

    [root@localhost ~]# ps aux | grep mysqld

    #mysqld_safe --skip-grant-tables &

    #mysql                                                                              /   /   进入mysql

    修改密码

     

    mysql> show databases;                      //查询库
    mysql> use mysql                                 //进入库
    mysql> show tables;                             //查询表
    mysql> desc user;                                
    mysql> select user,authentication_string from user;                    //查看用户详细表信息
    mysql> update user set authentication_string=PASSWORD('123456') where user='root';                       //修改密码    
    mysql> flush privileges;                                                                                                //生效
    mysql> exit                      

    这里又遇到一个尴尬的问题(也是我发现新版本的变态地方)

    当我按以上步骤走,到修改密码这一步,出现报错,提示说一个一个输入??????

    (这里我以为我语法有问题,另开了一台以前mysql版本5.6试了一下没问题!!!!!我靠??)

    之后找了官方文档,才明白怎么回事,mysql8.0新版本sql语句有一点点的变化,简单说就是两种操作不能同时一起执行,需分开一个一个执行???(具体可以上官网查看官方文档)

     我只能改进命令(将root登陆密码改为空)如图:

    #update user set authentication_string = '' where user = 'root';

    修改密码的语法变了(如图:)

    # ALTER USER USER() IDENTIFIED BY 'new password';    

     此时就没有报修改密码错误了!!唉

     mysql8.0以后的新版的SQL语法与mysql5.多版本语法好多有改变的,看来需要再次多练习一下mysql了!!!!!

  • 相关阅读:
    权重平等分布局And TableRow布局误区
    播放视频的框架Vitamio的使用问题
    Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
    使用PullToRefresh实现下拉刷新和上拉加载
    如何安全退出已调用多个Activity的Application?
    Stirng,Stringbuffer,Stringbuild的区别浅淡
    python3 logging
    从集合中筛选数据
    python3 模块
    python3 字符串的 maketrans,translate 方法详解
  • 原文地址:https://www.cnblogs.com/123456likun/p/13535080.html
Copyright © 2011-2022 走看看