zoukankan      html  css  js  c++  java
  • mysql安装和遇到的问题处理

    遇到需要在新系统上安装MySQL的事情,简单记录一下过程。

    声明:最好的文档是官方文档,我也是看的官方文档,只是中间遇到点问题,记录一下出现的问题和处理方式。贴一些官方文档地址。

    用tar包的安装方式:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html

    用yum源等其他安装方式:https://dev.mysql.com/doc/refman/5.7/en/linux-installation.html

    我那个里条件限制选择的tar包方式,其他方式的自己看官方文档吧,更简单。

    1、去下载一个tar包:https://dev.mysql.com/downloads/mysql/,我用的CentOS7.4,各自选择对应的版本下载就行了,包括下面步骤中的命令,不同系统可能也会有区别,注意根据自己系统修改。

     

    2、将下载的安装包上传到服务器的/opt目录下。

    3、新建用户组和添加mysql用的非登录用户 

        groupadd mysql;

        useradd -r -g mysql -s /bin/false mysql;

    4、切换到安装路径下,这里使用官方推荐的路径,然后将tar包解压到这里,再给安装目录创建个软连接,剩余的操作都是操作的软连接目录。

        cd /usr/local

        tar zxvf /opt/mysql-5.7.21-el7-x86_64.tar.gz;

        ln -s mysql-5.7.21-el7-x86_64/ mysql

        写入环境变量

        export PATH=$PATH:/usr/local/mysql/bin

    5、进入软连接目录,创建文件夹和授权

        cd /usr/local/mysql;

        mkdir mysql-files;

        chown mysql:mysql mysql-files;

        chmod 750 mysql-files;

    6、初始化数据库的部署数据,用--initialize会给root生成一个默认密码,--initialize-insecure不生成密码,还有--basedir和--datadir参数用法一样,这些配置可以去cat /etc/my.cnf中查看和修改,默认配置满足我的需求我初始化就不指定了

        bin/mysqld --initialize --user=mysql

        结果报了个错bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

        这是缺少包造成的,如果已经安装了libnuma.so.1,先yum remove libnuma.so.1,然后重新安装64位的

        yum install numactl.x86_64

        之后再重新执行mysql初始化命令,就可以了,记住下面这个密码,首次登陆要用,登陆后会再修改。

     

        如果要用mysql_ssl_rsa_setup创建默认的SSL和RSA文件就执行

        bin/mysql_ssl_rsa_setup

    7、到这里安装就结束了,启动服务,用推荐的mysqld_safe方式启动,做了安全优化和服务挂了能自动重启等功能,可以自己查一下。

    bin/mysqld_safe --user=mysql &

    结果报错了mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

    这个看应该是权限问题,增加权限配置,

     mkdir /var/log/mariadb/;

     touch /var/log/mariadb/mariadb.log;

     chown -R mysql:mysql /var/log/mariadb/

    再重新执行,还是有错

    分析/var/log/mariadb/mariadb.log日志, Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory),同样的处理方式

    mkdir /var/run/mariadb/;
    chown -R mysql:mysql /var/run/mariadb/

    再次执行mysqld_safe,成功

    8、登录并修改密码

    mysql -u root -p

    输入密码,密码是初始化时候显示的那个,结果,又双叒叕报错了。。。Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

    这个问题应该是多种解决方法,例如在/tmp目录下建立软连接,修改配置文件等,我是修改的配置文件

    vi /etc/my.cnf   增加下面两行配置socket的路径,保存之后重启服务,再输入用户名密码能登录了

    修改默认的密码,要不然什么操作也不能做。

    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

    9、mysql默认只能本机连接,如果需要远程连接数据库,需要配置远程连接,我们采用新增一个用户的方式,当然你也可以选择修改原来的root用户。

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密码' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    10、如需要配置开机自启,按下面操作

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

        chmod +x /etc/init.d/mysql

        chkconfig --add mysql

        执行chkconfig --list查看列表,

    如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则输入chkconfig --level 345 mysql on

    到这里从安装到配置基本就结束了,如果没有特殊要求,这些步骤就满足正常使用了,只是日常积累,懒得排版了,有需要的凑合看吧

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

    后来又装MariaDB10.0.21的时候,上面的初始化密码命令不太好使了,又换了一种直接更新表的方法,例如下面是将root的密码改成xxxxx,测试是能成功的

    mysql -uroot <<EOF
      USE mysql;
      UPDATE user SET authentication_string=password('xxxxx'),plugin='mysql_native_password' WHERE user='root';
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxxxx' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
    EOF
  • 相关阅读:
    Linux命令_2
    Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag.
    壁纸目录
    ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法
    Oracle VM VirtulBox 安装Ubuntu16.04
    Linux 中文输入法安装
    Android LayoutInflater 相关知识
    Linux命令_1
    青蛙跳杯子
    横向打印二叉树
  • 原文地址:https://www.cnblogs.com/yanh0606/p/8556990.html
Copyright © 2011-2022 走看看