美文网首页我爱编程程序员
centos7安装mysql数据库

centos7安装mysql数据库

作者: 1994_老叶 | 来源:发表于2017-08-02 12:45 被阅读0次

    我装的虚拟机,使用的centos7的最小安装,其中mysql是5.7.19的版本
    首先,我是准备将mysql安装在/usr/local/mysql中

    1.先将压缩包解压,解压到指定文件夹

    tar zvxf mysql-5.7.19-linux-glibc2.5-i686.tar.gz -C /usr/local

    2.到local文件下,重命名mysql的解压文件夹

    [root@localhost local]# mv mysql-5.7.19-linux-glibc2.5-i686/ mysql

    3.然后在mysql文件夹中创建data文件夹,并且在配置文件中声明

    [root@localhost local]# mkdir /mysql/data
    配置文件路径:/etc/my.cnf
    [root@localhost local]# vi /etc/my.cnf
    将datadir路径改为当前的data路径:/usr/local/mysql/data

    4.创建mysql用户组和用户,并设置权限。

    [root@localhost local]# groupadd mysql
    [root@localhost local]# useradd mysql -g mysql
    [root@localhost local]# cd mysql
    [root@localhost mysql]# pwd
    /usr/local/mysql
    [root@localhost mysql]# chown -R mysql .
    [root@localhost mysql]# chgrp -R mysql .
    后面两个语句后面有个点,请注意!

    5.初始化mysql

    进入bin目录:

    [root@localhost local]# cd /usr/local/mysql/bin
    安装异步IO
    root@localhost bin]# yum install libaio
    一般的结果是:
    包 libaio-0.3.107-10.el6.i686 已安装并且是最新版本无须任何处理
    进行mysql的初始化:
    [root@localhost bin]# ./mysql_install_db --user=mysql -->basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

    6.可以启动mysql的服务试试:

    进入support-files目录

    [root@localhost bin]# cd /usr/local/mysql/support-files
    [root@localhost support-files]# ./mysql.server start

    进行到这一布,十之八九你们都是会报错的,现在我们就来解决这些错误:
    如果你们报
    Starting MySQL.170603 01:20:16 mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
    这样的错误,缺少什么文件,这个好解决,只需要两步:
    首先,你查看一下是否有mariadb文件夹,没有,执行下面的语句,有就直接跳到下一步

    [root@localhost support-files]# mkdir /var/log/mariadb
    然后,授予权限
    [root@localhost support-files]#chown -R mysql:mysql /var/log/mariadb
    这样你就再试试启动服务,应该还是会报什么文件缺失,照着这样来是没问题的。不过刚刚的做法我觉得应该完善一点,mariadb是centos中安装mysql才会出现的,我觉得统一使用MySQL的名称会比较好一点,所以上边的完善做法是:
    首先,在配置文件中:
    vi /etc/my.cnf
    [mysqld_safe]
    log-error=/var/log/mysql/mysql.log => 把 mariadb 改成 mysql
    pid-file=/var/run/mysql/mysql.pid => 把 mariadb 改成 mysql
    然后创建日志文件
    touch /var/log/mysql/mysql.log
    chown -R mysql:mysql /var/log/mysql
    chown -R mysql:mysql /var/log/mysql/mysql.log
    如报run没有文件的错误,方法照此类推

    在装载时,还有可能遇到一个/tmp/mysql.sock缺失还是什么的问题,这个问题,你会发现tmp里面根本没有mysql.sock这个文件,真正的在你的配置文件里面能够看到,我的在/var/lib/mysql/mysql.sock,这个问题有的说吧配置文件改成正确路径就对了,我改成/tmp/mysql.sock发现行不同,最后方式是进行这两个文件的软连接:

    ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

    这个问题可能不会在启动服务的时候看到,在连接的时候可能会看到
    还有一些问题,我记不得了,希望以后有问题大家一起共享。

    7.连接数据库

    进入bin目录

    [root@localhost ~]# cd /usr/local/mysql/bin

    其中,mysql有初始密码的,我们可以在这里找到

    [root@localhost bin]#cat /root/.mysql_secret
    [root@localhost bin]# ./mysql -uroot -p

    然后输入密码
    连接上可能遇到mysql.sock的问题,我在第六步最后部分说明了

    8.修改数据库中的密码

    mysql> set password=password('root123');

    然后你就可以玩玩试试了

    mysql> use mysql;
    mysql> select Host,User from user;
    mysql> GRANT ALL PRIVILEGES ON . TO root@'%' identified by >'root123';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    9.远程连接:

    最后你远程连接的时候,发现可能连接不上,其原因一般是防火墙未打开3306端口(MySQL的默认端口)
    因为需要远程操作,所以我还在环境变了中设置了mysql路径:

    vi /etc/profile
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
    export PATH=$PATH:/usr/local/mysql/bin

    这样添加
    再向防火墙文件加入3306端口
    firwall-cmd --permanent --add-port=3306/tcp
    再重启防火墙服务

    service firewalld restart

    基本就OK
    你想看防火墙的配置,百度一下配置文件的路径就可以了,centos7和其他版本的防火墙文件的路径略有不同,查的时候注意一下就好。

    相关文章

      网友评论

        本文标题:centos7安装mysql数据库

        本文链接:https://www.haomeiwen.com/subject/jftslxtx.html