美文网首页
[后台开发系列之三]存储环境-Mysql数据库安装与配置(二)

[后台开发系列之三]存储环境-Mysql数据库安装与配置(二)

作者: BeJack | 来源:发表于2018-10-23 02:14 被阅读0次

    之前有一篇也同样是安装MYSQL的教程,使用到了yum安装,但不是每台服务器都有yum的,而且也不是个操作服务器的人都有root权限的,以不变应万变,这次我们来使用安装包,全程手工安装mysql,确保每个环节都在操作者的掌控之中

    此次篇幅,大部分内容来源于以下作者,感谢他们的贡献,侵删
    Linux下安装MySQL数据库之压缩包方式安装
    报错:1130-host ... is not allowed to connect to this MySql server

    检查是否已安装MYSQL

    使用以下命令查看当前安装mysql情况,查找以前是否装有mysql
    rpm -qa|grep -i mysql
    如果没找到,可以尝试使用
    find / -name mysqlwhereis mysql
    然后rm -rf,删掉全部与mysql相关的文件

    例如
    rm -rf /var/lib/mysql
    rm -rf /var/lib/mysql/mysql
    rm -rf /run/lock/subsys/mysql
    rm -rf /usr/lib64/mysql
    rm -rf /usr/local/mysql
    rm -rf /usr/local/mysql/bin/mysql
    rm -rf /usr/local/mysql/data/mysql
    rm -rf /usr/local/mysql/include/mysql
    rm -rf /usr/local/bin/mysql
    rm -rf /usr/share/mysql
    rm -rf /usr/local/bin/mysql
    

    ---------------------------------------------------- 清除完毕后,我们开始重装 ----------------------------------------------------

    一、下载MySQL压缩包

    MYSQL官网
    由于我不太清楚资源包到底是哪一个,所以为了方便,就直接用现成的可下载的链接来下载资源包,习惯上,我会在服务器上有一个专门的用于下载软件的文件夹,在该文件夹中执行以下命令
    wget http://dev.MySQL.com/get/Downloads/MySQL-5.7/mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz

    二、解压、重命名、移动

    解压后重命名为mysql,并把mysql移动到/usr/local下

    • 解压
      tar -xvf mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz
    • 重命名(MV命令本是移动命令,在同目录下移动,就相当于重命名)
      mv mysql-5.7.11-Linux-glibc2.5-x86_64 mysql
    • 移动到其他目录
      mv mysql /usr/local

    三、创建mysql用户组及其用户

    创建专用用户,可以大大提高数据库安全性,采用有限权限用户操作数据库,可以防止数据库被删除、泄漏等。但是这一步不是必须的,对于生产环境来说,是必要步骤,但是对于自用或者练手来说,使用root权限用户会比较方便,可以省去很多麻烦。

    groupadd mysql//创建新的用户组,名为mysql
    useradd -r -g mysql mysql//useradd -r参数表示mysql用户是系统用户,不可用于登陆系统;-g表示把mysql用户添加到mysql用户组中
    

    四、创建目录

    命令行切换当前目录到/usr/local/mysql

    • data
      mkdir /usr/local/mysql/data
    • tmp
      mkdir /usr/local/mysql/tmp
    • log
      mkdir /usr/local/mysql/log
    • pid
      mkdir /usr/local/mysql/pid

    五、初始化MySQL配置表

    此时 /usr/local/mysql目录下有这些内容


    初始化mysql,需要有配置文件,很多CentOS都默认存在/etc/my.cnf这个文件,这个是mysql的默认配置文件,如果没有这个文件,可以使用下面的命令,在安装目录下有一份可以使用的默认配置,将其拷贝到目标目录
    cp support-files/my-default.cnf /etc/my.cnf
    • 编辑 my.cnf 文件,配置路径
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 
    
    [client]
    #客户端连接记录文件
    socket = /usr/local/mysql/tmp/mysql.sock 
     
    [mysqld]
    #安装目录
    basedir = /usr/local/mysql
    #数据存储目录
    datadir = /usr/local/mysql/data
    #数据库访问端口
    port = 3306
    #数据库访问记录文件
    socket = /usr/local/mysql/tmp/mysql.sock
    #数据库数据模式,将来可再修改
    sql_mode=NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    
    [mysqld_safe]
    #mysql运行日志
    log-error=/usr/local/mysql/log/mysqld.log
    #mysql进程id
    pid-file=/usr/local/mysql/pid/mysqld.pid
    

    配置好配置文件后,初始化mysql,在/usr/local/mysql目录下运行

    bin/mysqld --initialize --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    #--user 启动mysql的用户;--basedir mysql安装目录;--datadir mysql数据仓库目录
    

    参数--user=root是指定运行mysql的用户权限,如果上述步骤中,有为mysql创建单独的用户,则此处写mysql,如果没有,则写root,意思是使用root用户来运行mysql。初始化之后,会在最后一行看到root账号的初始密码,或者到/var/log/mysqld.log中也能找到
    此时,有可能报 bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory错误,需要安装libaio,yum install -y libaio

    • 把mysql目录下除了data外的改为root所有,data为mysql用户所有,同样,这一步按需设置
    chgrp -R mysql .
    chown -R root .
    chown -R mysql data
    

    六、mysqld服务加入开机自启动项

    把mysql下的support-files/mysql.server服务脚本放到系统服务,并设置运行权限,这样就可以使用service mysql start启动服务

    cp support-files/mysql.server /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld
    

    查看是否添加成功
    chkconfig --list mysql

    七、建立软连接

    ln -s /usr/local/mysql/bin/mysql  /usr/local/bin
    ln -s /usr/local/mysql/bin/mysqladmin  /usr/local/bin
    ln -s /usr/local/mysql/bin/mysqld_safe  /usr/local/bin
    

    执行mysql命令时,则不需要到/usr/local/mysql/bin/目录下执行mysql。直接在任何路径下输入mysql,会执行/usr/local/bin下的mysql

    八、修改密码

    • 启动服务
      service mysqld start
    • 登陆mysql
      mysql -u root -p
      输入默认密码登录
    • 修改密码
      成功登陆到数据库后,用alert修改root密码为,abcd;
    alter user root@localhost identified by 'abcd';
    

    九、远程访问

    执行以上步骤后,mysql已经安装完成,而且正常启动,但是外网还是无法直接访问,只能本地访问,此时,需要修改数据库访问权限,才能访问

    • 改表法。
      可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%"
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    
    • 授权法。
      改表法,是不区分任务访问用户,直接开发让任何人访问,而授权法,是针对某一权限用户,只用某一用户,才可以远程访问,安全性更高
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
    mysql>FLUSH PRIVILEGES //修改生效
    mysql>EXIT //退出MySQL服务器
    

    这样就可以在其它任何的主机上以root身份登录啦!
    如果启动报错,可以使用如下方式尝试解决

    centos7 mysql The server quit without updating PID file(错误解决)
    centos7 mysql The server quit without updating PID file(错误解决)

    相关文章

      网友评论

          本文标题:[后台开发系列之三]存储环境-Mysql数据库安装与配置(二)

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