zoukankan      html  css  js  c++  java
  • Centos以rpm方式进行安装MySql

    安装过很多次mysql了,却没好好总结过,每次安装完了都忘,下次还要重新Google,这次总结下,自己以后也有的查。

    1.安装采用的的rpm包的方式,安装前要先看系统内是否安装了旧版本的MySql和mariadb数据库,如果安装了要先卸载掉。

    具体命令为:rpm -qa|grep mariadb 和 rpm -qa|grep mysql,搜索mysql的时候会区分大小写,所以可以改变下MySQL的大小写,多搜索几次。如果安装了,必须使用rpm -e 卸载掉,例如:

    [root@5201351 ~]# rpm -qa|grep mariadb
    mariadb-libs-5.5.41-2.el7_0.x86_64
    [root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
    

     然后用:find / -name mysql 命令搜索一下看是不是还有残留文件,如果有可以直接删掉。

    2.下载新版本的安装包,5.7的网址为:http://dev.mysql.com/downloads/file/?id=462161,MySQL8的下载链接:https://dev.mysql.com/downloads/file/?id=476386,我使用的rpm的安装包,所以下载的是rpm的完整依赖压缩包,扩展名为tar,

    mysql8的下载链接:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-1.el7.x86_64.rpm-bundle.tar

    下载完成后解压:tar -xf mysql-5.7.12-1.el7.x86_64.rpm-bundle.tar,这个地方注意,解压参数不能添加zv 不然会报错,这个好像和mysql官方的tar的压缩方式有关。

    解压之后会释放很多个rpm的安装包,其中有四个是必须安装的,而且有依赖关系。

    安装之前先检查是否安装了libaio和perl,如果没安装的话,要先把这个装上,不然安装依赖的时候不会报错,安装最后service的时候会报错。

    具体的错误信息为:

     mysql最小模式下,必须安装的是:

    mysql-community-common-5.7.9-1.el7.x86_64.rpm

    mysql-community-libs-5.7.9-1.el7.x86_64.rpm             --(依赖于common)
    mysql-community-client-5.7.9-1.el7.x86_64.rpm          --(依赖于libs)
    mysql-community-server-5.7.9-1.el7.x86_64.rpm         --(依赖于client、common)

    在安装的时候第一次没事,后期换过一次系统,再次安装的时候出现了HAS1校验错误的问题,安装更新了好多东西还是没解决,最后使用:-ivh参数忽略警告直接安装。

    如果安装过程中出现以下错误:Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY,安装时需要指定参数:--force --nodeps

    安装命令比如:rpm -ivh mysql-community-client-8.0.11-1.el7.x86_64.rpm --force --nodeps

    如果后期要用python之类的语言连接mysql,那再把:mysql-community-devel-5.7.12-1.el7.x86_64.rpm装上,不然后期还得安装,安装完成之后,这个安装包最好保留,因为后期指不定还安装什么东西呢。

    3.以上安装完成之后,mysql已经安装完成了,接下来生成mysql的默认密码,

    命令:mysql_install_db --datadir=/var/lib/mysql   //必须指定datadir,执行后会生成~/.mysql_secret密码文件,注:这是个以点号开头的文件,默认是隐藏的,使用:ls -la就能看到了。

    或者执行:mysqld --initialize                         //新版的推荐此方法,执行生会在/var/log/mysqld.log生成随机密码

    这两个都可以生成初始密码,但注意位置不同,上面的是在root目录下.mysql_secret文件中,下面的是在日志文件中。

    4.修改权限组:chown mysql:mysql /var/lib/mysql -R

      启动时出现:mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

      需要安装:yum -y install numactl.x86_64

    5.启动MySQL服务:systemctl start mysqld.service。

    6.根据3中使用的方式不同,查看生成随机密码,然后登陆就好了,命令:mysql -u root -p 随机密码

    7.因为是使用随机密码登陆的,最开始要先修改密码,其他的命令不能执行,否则会返回错误:You must reset your password using ALTER USERstatement before executing this statemen。

    修改密码命令:

      1.SET PASSWORD = PASSWORD('123456');

      2. ALTER USER `root`@`localhost` PASSWORD EXPIRE NEVER;

       mysql8: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

      3. FLUSH PRIVILEGES ;

    然后退出重新登陆,就可以正常操作了。

    如果想开启远程登录,先要检查本地的3306端口是否开放了,具体命令为:

      测试端口是否打开:firewall-cmd --query-port=3306/tcp

      打开指定端口:firewall-cmd --add-port=3306/tcp

      允许远程登录的操作为:

      mysql>use mysql; 

      mysql>update user set host = '%' where user = 'root'; 

      mysql>flush privileges;

    执行完这些操作,就可以用sqlyog等工具远程登录了。

    这样安装完毕之后配置文件在:/etc/my.cnf。注:linux下配置文件名字为my.cng,window下叫my.ini。

    如果想配置成本地面密码登录,可以修改配置文件,添加如下部分:

    [client]
    host=localhost  #限定的IP
    user='root'  #用户名
    password='passwd'  #密码
    socket=/data/mysql/mysql.sock #此部分可以不添加,如果写错了,可能会导致客户端连接服务器的时候出现mysql.sock找不到的错误。

    扩展

    1:针对单个IP做IP白名单(mysql8),每个IP要执行一次,不能一次性允许多个IP;

    CREATE USER 'writer'@'114.55.15.20' IDENTIFIED BY 'BZRiIrC5hjP';
    grant all privileges on data_warehouse.* to writer@'114.55.15.20' ;

    以上是以rpm的方式进行安装。

    安装过程中参考了很多人的博客,因为有的随手关闭了,不能一一在此写明,在此对各位表示感谢。

  • 相关阅读:
    mysql总结1
    shell 获取结果中的第n列,第n行
    automake中Makefile.am和configure.ac的格式及编译过程
    安卓常见错误解决方案
    kotlin 委托
    Kotlin 对象表达式和对象声明
    Kotlin 枚举类
    angular js自定义service的简单示例
    用angular.element实现jquery的一些功能的简单示例
    js判断中出现两个!!是什么意思?
  • 原文地址:https://www.cnblogs.com/likui360/p/5494660.html
Copyright © 2011-2022 走看看