zoukankan      html  css  js  c++  java
  • Cent7安装mysql5.7.11全过程

    下载mysql(注:其他版本未测试)

    https://cdn.mysql.com/archives/mysql-5.7/mysql-boost-5.7.11.tar.gz

    1、安装依赖包

    yum -y install make gcc-c++ cmake bison-devel  ncurses-devel   bison perl perl-devel  perl perl-devel 

    2、解压到/usr/local目录下

    tar -zxvf mysql-boost-5.7.11.tar.gz -C /usr/local

    3、创建mysql组和用户

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

    4、编译mysql

    cd /usr/local/mysql-5.7.11/
    cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
    make    #注意:此步骤过程非常慢,建议使用 -j 4 4核的方式处理  同时保证服务器的内存至少大于2G
    make install

    5、把原来的/etc/my.cnf备份

    cp /etc/my.cnf /etc/my.cnf.bak
    rm -f /etc/my.cnf

    6、把安装目录用户和组更改为mysql

    cd /usr/local/mysql
    chown -R mysql .
    chgrp -R mysql .

    7、创建一个数据目录

    mkdir -p /data/mysql/data/

    8、初始化mysql,及开启ssl新功能

    bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data 
    bin/mysql_ssl_rsa_setup  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data 

    9、 设为root是为了防止普通用户不小心删除数据库

    chown -R root .
    chown -R mysql /data

    10、拷贝配置文件

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

    11、修改环境变量

    vi /etc/profile 
    # 在profile文件末尾增加两行 
    PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH 
    export PATH 
     # 使PATH搜索路径立即生效:
    source /etc/profile

    12、修改配置文件

    vi /etc/my.cnf
    #修改第19行(取消注释且修改为)   datadir = /data/mysql/data/ 

    13、启动

    service mysql start

    到此,数据库就已经安装完毕了

    接下需要打开防火墙3306端口

    firewall-cmd --add-port=3306/tcp --permanent

    firewall-cmd --reload

    firewall-cmd --list-port

    但是 mysql -u root -p 不能直接登录,于是更改密码,记录如下:

    1)vi /etc/my.cnf  
    2)在[mysqld]下边的某个位置增加: skip-grant-tables  ,然后 :wq 保存退出
    3)在  /usr/local/mysql/bin目录下执行命令:  ./mysql -u root -p   ,然后回车两次,进入到mysql
    4)执行命令:
    use mysql
    SET SQL_SAFE_UPDATES = 0
    5)update mysql.user set authentication_string=password('root') where User='root';
    6)flush privileges ; 
    7)执行命令:SET SQL_SAFE_UPDATES = 1
    8)vi /etc/my.cnf  ,删除skip-grant-tables 行
    9)service mysqld restart
    10) 在  /usr/local/mysql/bin目录下执行命令:  ./mysql -u root -p   然后输入新建的密码:root即可进入mysql 

    虽然现在可以登录了,但我们需要在其他客户端远程连接此数据库,发现是连不通的

    提示:Host 'xxx' is not allowed to connect to this MySQL server。网上找了一些资料,是mysql未开启mysql远程访问权限导致。

    记录解决方案供以后参考。:

    1.登录到mysql:  mysql -uroot -ppwd

    2.查看user表: 

    mysql> use mysql
    Database changed
    mysql> select host,user,password from user;
    +------+------+-------------------------------------------+
    | host | user | password |
    +------+------+-------------------------------------------+
    | localhost    | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
    +------+------+-------------------------------------------+
    1 row in set (0.00 sec)

    表中host、user字段标识了可以访问数据库的主机和用户。例如上面的数据就表示只能本地主机通过root用户访问。原来如此,难怪远程连接死活连不上。

    为了让数据库支持远程主机访问,

    可以直接修改host字段的值,将localhost修改成需要远程连接数据库的ip地址。或者直接修改成%。修改成%表示,所有主机都可以通过root用户访问数据库。为了方便,我直接修改成%。命令:mysql> update user set host = '%' where user = 'root';

    再次查看user表

    +------+------+-------------------------------------------+
    | host | user | password |
    +------+------+-------------------------------------------+
    | % | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
    +------+------+-------------------------------------------+
    1 row in set (0.00 sec)

    修改成功,输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程连接数据库成功。

  • 相关阅读:
    JS for循环删除数组元素
    InteliJ idea import project 找不到文件结构解决办法
    JSONP 实例
    JSONP 回调给全局变量赋值失败解决
    记用ajax网页跳转大坑——后台执行了,但是没有跳转
    web服务器无法显示font-awesome字体图标
    记 fastjson泛型转对象 第一次可以正常转,第二次就变成JSONArray 问题
    java与mysql时间类型对应的问题
    idea 配置springmvc+mybatis(图文教程)
    (转载)Android学习笔记⑨——android.content.ActivityNotFoundException异常处理
  • 原文地址:https://www.cnblogs.com/lm970585581/p/9939423.html
Copyright © 2011-2022 走看看