美文网首页
linux安装mysql及中间遇到的问题

linux安装mysql及中间遇到的问题

作者: SimpleEasy | 来源:发表于2019-07-13 22:00 被阅读0次

    1,下载mysql安装包

    wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

    2,将下载好的文件放置在/usr/local目录下,并解压

    tar -zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

    3, 重命名并删除安装包

    mv mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz mysql

    rm -rf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz(可以选择保留)

    4,创建mysql用户组及系统用户

    groupadd mysql

    useradd -r -g mysql mysql (-r 表示创建系统用户,-g表示系统用户所属用户组)

    5,进入mysql目录,执行mysql配置操作,死否覆盖按Y覆盖。

    cp support-files/my-default.cnf /etc/my.cnf

    6,编辑/etc/my.cnf文件

    vi /etc/my.cnf

    内容如下:

    # For advice on how to change settings please see

    # http://dev.mysql.com/doc/refman/5.6/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.

    [mysqld]

    # 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 = /usr/local/mysql

    datadir = /usr/local/mysql/data

    port = 3306

    # server_id = .....

    socket = /tmp/mysql.sock

    character-set-server = utf8

    skip-name-resolve

    log-err = /usr/local/mysql/data/error.log

    pid-file = /usr/local/mysql/data/mysql.pid

    # 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

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    7,在mysql当前目录下设定目录的访问权限(注意后面的小点,表示当前目录)

    chown -R mysql .          #修改当前目录的所有者(用户)为mysql,-R表示递归处理所有文件或者文件夹

    chgrp -R mysql .          #修改当前目录所属的用户组为mysql用户组

    chown -R root .

    chown -R mysql data      #修改data没有了的所有者为mysql用户

    8,初始化数据(在mysql/bin或者mysql/scripts下有个 mysql_install_db 可执行文件初始化数据库),进入mysql/bin或者mysql/scripts目录下,执行下面命令:

    ./mysql_install_db --verbose --user=root --defaults-file=/etc/my.cnf --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp

    如果执行过程中出现如下错误,说明是缺少相关依赖,执行如下命令解决,解决后重新执行脚本。

    yum -y install autoconf 或者 yum -y install perl perl-devel

    yum install libaio* 或者 yum -y install libaio-devel

    9,启动mysql,进入/usr/local/mysql/bin目录,执行下面命令

    ./mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql.sock --user=root &

    10,配置mysql服务和开机启动(这个是针对linux系统的通用操作,centos7有其他方式),可以参看《Centos7 自定义systemd service服务和开机启动》一文

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

    chmod 700 /etc/init.d/mysql

    chkconfig --add mysqld

    chkconfig --level 2345 mysqld on

    chown mysql:mysql -R /usr/local/mysql/

    11,可以选择重启操作系统reboot,查看开机启动是否生效。

    12,操作mysql服务的命令

    service mysqld status #查看mysql状态

    service mysqld restart  #重启mysql服务

    service mysqld stop #停止mysql服务

    service mysqld start #启动mysql服务

    13,添加msql客户端

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

    14,更改访问权限

    登录mysql,执行下面命令:

    mysql -uroot -p

    密码为空直接回车,运行以下两条命令

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root123' with grant option;

    Flush privileges;

    15,退出mysql

    exit

    注:本机访问mysql,root账户默认是没有密码的,端口号默认3306,如果需要修改root账户密码,在/usr/local/mysql/bin目录下,执行下面命令

    ./mysqladmin -h 127.0.0.1 -P3306 -uroot password 'root123'exit

    16,mysql访问遇到的问题

    使用navicat客户端,在其他机器上用账号和密码连接mysql服务器能够正常连接和操作,但是在本机上利用 mysql -hMysql服务器ip -uroot -proot123却拒绝连接,利用mysql -hMysql服务器ip -uroot -p 回车却能够正常登陆,这造成了部署到该服务器的web系统不能够正常连接mysql服务器。

    问题原因:mysql是针对不同的ip,同一个用户可以拥有不同的密码,出现上述问题的原件就是navicat客户端所在机器的ip使用的root账号需要密码,但是本地用root连接mysql服务器却不需要密码。

    解决办法:1,查询系统库mysql中的user表

    select user,host,password from user;

    2,删除host为localhost、127.0.0.1且密码为null的字段,为了安全甚至可以将user为null的内容也删除。

    3,执行

    flush privileges;

    4,重启mysql服务

    service mysqld restart

    相关文章

      网友评论

          本文标题:linux安装mysql及中间遇到的问题

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