• 关于linux安装mysql的一些问题记录


      linux安装mysql的步骤,也是从百度上搜来的,根据步骤一步一步来,不过我下载安装的是mysql8以上版本

      一、linux安装,按百度上mysql安装步骤进行,参考:https://www.jianshu.com/p/276d59cbc529

      我是自己从windows先把mysql的linux包下下来,通过共享的方式将mysql的安装包复制到linux操作系统的/usr/local/mysql 路径下

      1、我下载的包是:mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

      故先解压再安装

      1)xz -d mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

      2)tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar

      2、查看linux系统下是否有安装mysql,有的话先卸载,查看命令

      whereis mysql;find / -name mysql

      将查找出来的文件和目录都删除掉,删除后再用以上命令查看是否删除干净

      3、为mysql创建所属用户组和用户名(如果用户组和用户名存在就无需创建了,使用cat /etc/group | grep mysql;cat /etc/passwd | grep mysql)

      groupadd mysql

      useradd -r -g mysql mysql

      4、在/usr/local/mysql创建data目录

      mkdir /usr/local/mysql/data

      5、将mysql设置权限

      chown -R mysql:mysql /usr/local/mysql

      chmod -R 755 /usr/local/mysql

      6、 编译安装并初始化数据库

      cd /usr/local/mysql/bin

      ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

      编译安装初始化数据库的时候出现问题报没有libaio这个软件

      可通过yum进行安装该软件:yum install libaio-devel.x86_64

      如果你不知道包名是什么,可通过 yum search libaio,会列出来相关的包,选择你要安装的包就可以了

      初始化成功后:记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。

      7、编辑配置文件my.cnf

      此处我打开后my.cnf默认有如下: 

    [mysqld]
    datadir=/var/mysql/data

    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0

      随后我根据参考步骤将其余几项也添加进去,且修改了datadir 将socket这项删除了

    [mysqld]
    datadir=/usr/local/mysql/data
    port=3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    symbolic-links=0
    max_connections=600
    innodb_file_per_table=1
    lower_case_table_names=1
    character_set_server=utf8

      8、启动mysql服务器

      /usr/local/mysql/support-files/mysql.server start

      问题来了,怎么都启动不了,老是说the server PID file not found

      我将百度上所有的方法都试了一边都不行,百度上的方法有如下:

    MySQL server PID file could not be found! 解决办法

    1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
    解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!

    2.可能进程里已经存在mysql进程
    解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!

    3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动
    解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !http://blog.rekfan.com/?p=186

    4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)
    解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

    5.skip-federated字段问题
    解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

    6.错误日志目录不存在
    解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

    7.selinux惹的祸,如果是centos系统,默认会开启selinux
    解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

    8.解决办法
    cd/usr/local/mysqlcd/usr/local/mysqlchown -R mysql.mysql .
    su−mysqlsu−mysql cd /usr/local/mysql
    scripts/mysqlinstalldbscripts/mysqlinstalldb exit
    /etc/init.d/mysqld restart

    上面没有解决的话,查看磁盘空间大小 df -h 清空binlog

    如果上面都不成的话,最终解决办法,如果是主从的话,要重新同步
    删除了 ib_logfile0 和 ib_logfile1 两个文件,就正常了

       后面我从另外一篇文档上找到了根本原因https://blog.51cto.com/ludihua/1431544,意思是参考自己数据库编译安装初始化的时候的错误日志,根据错误的日子去找原因,我在/usr/local/mysql/data/centos7.err里找到了,就是说mysql启动时使用的datadir是错误的,告诉我需要重新创建data,

      此后我将原先的data改名为data1,再次重新初始化一下生成data后,就可以正常启动了。(个人认为肯定是初始化的时候,datadir没有将my.cnf中的datadir覆盖导致的)

      9、为mysql启动创建软连接:

      ln -s /usr/local/mysql/bin/mysqld /usr/bin/mysql

      10、数据库好不容易装好后,有忘记数据库登录的密码,修改密码也耗了好多时间,因为不知道mysql5.6以上版本将password()这个函数去掉了,mysql8.修改登录密码如下:

    参考:https://www.cnblogs.com/nuanyingzi/p/13432465.html

      1) 进入配置文件 vim /etc/my.cnf 添加代码 skip-grant-tables 即可跳过mysql密码验证进行登录

      2)重启mysql

      3)需要先将root密码置空 update user set authentication_string='' where  user = 'root';

      4)再次编辑配置文件my.cnf 去除免密码登陆

      修改mysql配置,删掉或注释掉步骤1中添加的语句 skip-grant-tables

      5)重启服务

       service mysql restart

      6)修改密码,执行如下命令:

    mysql -u root -p //提示输入密码时直接敲回车,刚刚已经将密码置空了

    开始修改密码:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

    FLUSH PRIVILEGES;

    本文来自博客园,作者:%女王%,转载请注明原文链接:https://www.cnblogs.com/lynne-wu/p/14074739.html

  • 相关阅读:
    [LeetCode][SQL]Rising Temperature
    google API的.NET库
    Google Reader的另一个开源的替代品Go Read
    C#中反射接受的字符串需要满足的Backus-Naur Form语法
    Windows的应用管理工具 PortableApps,Chocolatey和Ninite
    如何定制Windows系统右键菜单
    另一个有趣的Captcha 网站
    .gitignore模板
    遇到sql server的问题时如何排查
    如何传播你的代码
  • 原文地址:https://www.cnblogs.com/lynne-wu/p/14074739.html
Copyright © 2020-2023  润新知