• RedHat 6 安装 MySQL 5.5 流程记录及相关问题解决方案


    1. RedHat 中 使用 yum 方式安装 MySQL

    1.1 删除系统自带的 MySQL 5.1
    rpm -qa | grep mysql   #查看已经安装的mysql
    rpm -e mysql            #普通删除模式
    rpm -e --nodeps mysql  #强力删除模式
    
    1.2 使用yum卸载rpm包防止 mysql 安装冲突
    yum -y remove mysql-libs-5.1.66*
    
    1.3 创建本地的 yum 资源库配置
    vi /etc/yum.repos.d/local.repo
    

    加入如下一段内容:

    [localrepo]
    name = myLocalYumRepo
    baseurl = /home/rhel/Downloads/MySQL-5.5.58-l.el6-rpm
    gpgcheck = 0
    enable = 1
    

    其中 baseurl 指向了我的 MySQL rpm 包所在路径。

    1.4 yum 安装 MySQL

    配置好 local_yum_repo 之后,cd 进入 baseurl 所在目录,就可以安装下面三个:

    yum install MySQL-server-5.5.58-1.el6.x86_64.rpm
    yum install MySQL-client-5.5.58-1.el6.x86_64.rpm
    yum install MySQL-devel-5.5.58-1.el6.x86_64.rpm
    
    1.4.1 卸载 MySQL

    先用命令查看一下,有哪些已经安装的 mysql 程序:

    rpm -qa|grep -i mysql
    

    使用 rpm 方式安装的采用下面的命令卸载:

    rpm -ev MySQL-client-5.5.58-1.el6.x86_64 --nodeps
    rpm -ev MySQL-devel-5.5.58-1.el6.x86_64 --nodeps
    rpm -ev MySQL-server-5.5.58-1.el6.x86_64 --nodeps
    

    查找原有的 mysql 目录:

    find / -name mysql
    

    找到如下内容,一 一 删除:

    rm -rf /usr/lib64/mysql
    rm -rf /var/lib/mysql
    rm -rf /var/lib/mysql/data/mysql
    rm -rf /var/lib/mysql/mysql
    

    手动删除 /etc/my.cnf

    rm -rf /etc/my.cnf 
    

    最后再检查一下时候还有安装 的 mysql:

    rpm -qa|grep -i mysql
    

    没有显示的话,就说明已经卸载完毕。

    1.5 安装完之后的目录介绍

    安装后 MySQL主要的默认存放文件目录:

    /usr/bin                 #这里存放脚本和客户端程序
    /var/lib/mysql        #mysql的数据存储目录
    /usr/share/mysql  #mysql存放的初始化相关脚本
    
    1.6 MySQL 配置文件

    编辑:vi /etc/my.cnf

    # The MySQL Client
    [client]
    #客户端默认连接字集集,若编译安装时已指定则不用填写
    #character-set-server = utf8
    #客户端连接通信端口
    port = 3306
    #客户端通信的用户密码端口等信息保存文件
    socket = /var/lib/mysql/mysql.sock
    default-character-set=utf8
    
    # The MySQL server
    [mysqld]
    #mysql服务端监听端口
    port  = 3306     
    #mysql数据库存放目录
    datadir = /var/lib/mysql/data
    socket = /var/lib/mysql/mysql.sock
    #服务端pid进程文件,若丢失则重启Mysql重新生成,若重启失败,
    #则可能由于mysqld进程未杀死,用pkill mysql后则能重启成功Mysql
    #pid-file =/opt/mysql/data/myDBserver.pid
    bind-address = 0.0.0.0
    
    [mysql]
    socket = /var/lib/mysql/mysql.sock
    
    1.7 初始化 MySQL

    使用默认路径:

    /usr/bin/mysql_install_db --user=mysql
    
    1.8 将 mysql 目录所有者及用户组修改为 "mysql"
    chown -R mysql /var/lib/mysql/
    chgrp -R mysql /var/lib/mysql/
    
    1.9 启动和停止 MySQL

    启动 MySQL 服务:

    #/etc/init.d/mysqld start  # rhel 没有这个命令
    /etc/init.d/mysql start
    

    停止 MySQL 服务:

    /etc/init.d/mysql stop
    
    1.10 修改 MySQL root 用户的默认密码

    (1)方式 1:

    1. 先使用命令:mysql 进入 MySQL

    2. 执行 SQL 语句更新 root 密码

      update mysql.user set password=PASSWORD('Cs123456') where user='root';
      
    3. 刷新一下权限,就可以了。

      flush privileges;
      

    (2)方式 2:

    修改 root 用户密码的另一种方式,执行 shell 命令:

    mysqladmin -u root password Cs123456
    
    1.11 登录 MySQL 的命令格式
    mysql [-u username] [-h host] [-p[password]] [dbname]
    

    例如:

    mysql -u root -pCs123456 -h localhost
    
    1.12 为 root 的远程连接授权
    mysql -uroot -p'Cs123456'
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    如果不想给 root 授权远程连接,我们可以新建一个用户专门用作远程连接使用,比如 ”test“:

    create user test identified by 'Cs123456';
    grant all privileges on *.* to 'test'@'%'identified by 'Cs123456' with grant option;
    flush privileges;
    

    @'%' 的意思是对所有的 IP 地址开放。

    修改用户密码可以使用下面的语句:

    update mysql.user set password=password('新密码') where User="test" and Host="localhost";
    flush privileges;
    

    删除用户:

    delete from user where User='test' and Host='localhost';
    flush privileges;
    
    1.13 解决 MySQL 无法远程连接的问题
    vi /etc/my.cnf
    

    bind-address = 127.0.0.1 ,设置成 bind-address = 0.0.0.0


    2. 安装过程中遇到的问题

    ★ ERROR! MySQL server PID file could not be found!

    原因:MySQL 进程卡死。
    解决方法:

    1.杀死mysql进程:killall mysqld
    2.重启mysql:service mysql start
    
    ★ ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/tmp/mysql.sock'

    原因:可能是 mysql.sock 文件的位置不正确

    解决方法:

    1、先找到 mysql.sock 的位置:

    lsof -c mysqld|grep sock$
    

    找到了这个路径:/var/lib/mysql/mysql.sock

    2、vi /etc/my.cnf 配置 [mysqld] [mysql][client],将 socket 的路径改成上面查出来的路径。

    ★ Starting MySQL. ERROR! The server quit without updating PID file (/var/lib/mysql/data/myDBserver.pid

    可能原因:上一次 MySQL 非正常关闭

    解决方法:创建一个 myDBserver.pid 空文件,并且随便设置一个进程中没有的 pid

    vi /var/lib/mysql/data/myDBserver.pid
    23432
    

    然后重启 MySQL 服务,如果没有其他的原因的话,就可以正常启动了。

    ★ 关于远程访问mysql出现Access denied for user 'root'@'

    两种情况会导致这个问题:

    (1)root 密码输入错误

    (2)在 mysql 服务端没有开放 root 对外远程连接的授权。解决方法可参考(1.)

    ★ 配置防火墙,开启3306端口

    先查看一下 防火墙开放的端口:

    iptables -nL --line-number
    

    显示DROP代表防火墙阻止了3306端口。

    更改 防火墙,放开 3306 端口:

    vim /etc/sysconfig/iptables
    

    在 COMMIT 上一行加入如下内容:

    -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
    

    重启防火墙:

    service iptables restart
    

    查看 3306 是否变为 ACCEPT,如果是就表示已经开放端口啦。

  • 相关阅读:
    【移动安全高级篇】————2、浅谈Android软件安全自动化审计
    【移动安全实战篇】————1、Android手机下xx.apk JAVA破解之旅
    【移动安全高级篇】————1、Android沙盘原理与实现
    CLR
    反射
    泛型
    面试
    Sqlite
    粒子
    地图
  • 原文地址:https://www.cnblogs.com/uzipi/p/8367163.html
Copyright © 2020-2023  润新知