• Linux 安装 mysql 与 mysql在Linux环境本地使用,但windows远程连不了问题处理


    1系统约定

    Linux版本:centos6.5

    mysql版本:mysql5.7

    安装文件下载目录:/opt/software
    Mysql目录安装位置:/usr/local/mysql
    数据库保存位置:/opt/data/mysql/data
    日志保存位置:/opt/data/mysql/log

    2.下载mysql,解压,并拷贝到安装目录
    http://dev.mysql.com/downloads/mysql/

    下载的包是:mysql-5.7.25-linux-glibc2.12-x86_64.tar
    对其进行解压:tar -xvf mysql-5.7.25-linux-glibc2.12-x86_64.tar
    得到两个压缩包:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz 和 mysql-test-5.7.25-linux-glibc2.12-x86_64.tar.gz
    解压gz安装包:tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz

    重命名解压的安装包:mv  mysql-5.7.25-linux-glibc2.12-x86_64 mysql

    复制安装包到安装目录:cp -rf mysql /usr/local/

    3.创建数据仓库目录并配置权限

    创建目录:

    新建mysql用户、组及目录:
    useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell
    如果提示useradd: group 'mysql' does not exist,可以通过下面的命令添加组,再重新执行上面的命令
    groupadd -r mysql

    改变安装目录所属:

    给mysql用户数据仓库目录权限:

     4.初始化mysql

    cd /usr/local/mysql/bin/

    ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/opt/data/mysql/data --socket=/opt/data/mysql/mysql.sock --log-error=/opt/data/mysql/log/error.log --pid-file=/opt/data/mysql/mysql.pid --tmpdir=/opt/data/mysql/tmp

    注意:上面命令等号前后没有空格

    注意,上面命令对应my.cnf配置:
    basedir = /usr/local/mysql
    datadir = /opt/data/mysql/data
    socket = /opt/data/mysql/mysql.sock
    log-error = /opt/data/mysql/log/error.log
    pid-file = /opt/data/mysql//mysql.pid
    user = mysql
    tmpdir = /opt/data/mysql/tmp

    注意保存生成的临时密码,如上图为:0a.FmxaQdcqZ

    注意:上图执行的命令并不是前面给出的,前面给出的是完整命令,按照上图命令执行后来出现错误,这里留下此图只是为了说明临时密码和执行位置,上图的内容有可能没有输出(本人修正错误时就是如此),但可以去指定的log-error文件中查看

    5.修改系统配置文件

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

    修改配置文件/etc/init.d/mysql以下内容:

    vi /etc/init.d/mysql

    修改my.cnf,如果没有这个文件,可以添加,内容修改如下:

    [mysqld]
    basedir = /usr/local/mysql
    datadir = /opt/data/mysql/data
    socket = /opt/data/mysql/mysql.sock
    log-error = /opt/data/mysql/log/error.log
    pid-file = /opt/data/mysql//mysql.pid
    user = mysql
    tmpdir = /opt/data/mysql/tmp
    [client]
    socket = /opt/data/mysql/mysql.sock

    注意:上面两个socket要一致,否则登录时会报错:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

    6.启动mysql,登录,修改密码

    # /etc/init.d/mysql start
    --登陆
    # mysql -hlocalhost -uroot -p
      --如果出现:-bash: mysql: command not found
      --就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --没有出现就不用执行
    --输入前面生成的临时密码
    --修改密码
    mysql> set password=password('root');
    --设置root账户的host地址(修改了才可以远程连接)
    mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
    mysql>flush privileges;
    --查看表
    mysql> use mysql;
    mysql> select host,user from user;
    --这里就可以使用远程连接测试了;

    有时时间间隔久了初始临时密码会失效,登录时报以下错误:
    Your password has expired. To log in you must change it using a client that supports expired passwords.
    解决办法:
    进入安装bin目录
    [root@localhost bin]# ./mysqladmin -uroot -p password
    Enter password: //这里输入上面的v:gNXSw5FTkw
    New password: //重新输入新密码
    Confirm new password: //重新输入新密码
    问题解决!

    7.自制镜像安装包

    个人比较懒,需要在多台机器安装,不想逐一安装,想把安好的拷贝到其他环境运行,自作一个镜像包,并编写安装脚本

    制作流程:

    #创建打包目录
    cd /opt/
    mkdir mysql5.7-mirror-installer
    cd mysql5.7-mirror-installer/
    mkdir software
    mkdir data
    mkdir config
    #打包安装目录
    cd cd /usr/local/
    zip -r mysql.zip mysql
    mv mysql.zip /opt/mysql5.7-mirror-installer/software/
    #打包data目录
    cd /opt/data/
    zip -r mysql.zip mysql
    mv mysql.zip /opt/mysql5.7-mirror-installer/data/
    #打包配置文件
    cd /opt/mysql5.7-mirror-installer/config/
    cp /etc/init.d/mysql ./
    cp /etc/my.cnf ./
    #编写安装脚本
    安装脚本内容见后面install.sh
    #赋予脚本权限
    chmod 777 install.sh

    install.sh内容:

     1 #!/bin/sh
     2 echo "====解压安装目录并复制到指定目录(/usr/local/)===="
     3 cd software/
     4 rm -rf mysql
     5 unzip mysql.zip
     6 rm -rf /usr/local/mysql
     7 cp -rf mysql /usr/local/
     8 cd ..
     9 
    10 echo "====解压data目录并复制到指定目录(/opt/data/)===="
    11 cd data/
    12 mkdir /opt/data
    13 rm -rf mysql
    14 unzip mysql.zip
    15 rm -rf /opt/data/mysql
    16 cp -rf mysql /opt/data/
    17 cd ..
    18 
    19 echo "====解压配置文件===="
    20 cd config/
    21 cp mysql  /etc/init.d/
    22 cp my.cnf /etc/
    23 
    24 echo "====创建用户并授权===="
    25 groupadd -r mysql
    26 useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
    27 chown -R mysql /usr/local/mysql
    28 chgrp -R mysql /usr/local/mysql
    29 chown -R mysql /opt/data/mysql
    30 chgrp -R mysql /opt/data/mysql
    31 chown -R mysql /etc/init.d/mysql
    32 chgrp -R mysql /etc/init.d/mysql
    33 chown -R mysql /etc/my.cnf
    34 chgrp -R mysql /etc/my.cnf
    35 ln -s /usr/local/mysql/bin/mysql /usr/bin
    36 
    37 echo “====启动mysql(命令:/etc/init.d/mysql start)====”
    38 /etc/init.d/mysql start
    39 
    40 echo “====安装成功,root初始密码abcdefg1123456”

    使用方法:

    1.安装mysql
    上传到Linux环境后在上传目录:
    解压:
    unzip mysql5.7-mirror-installer.zip
    进入解压目录:
    cd mysql5.7-mirror-installer
    安装:
    sh install.sh

    按照上面安装完成后可以在Linux环境本地使用,但windows远程连不了,需要执行下面的2、3两个操作

    2.配置mysql
    1)登录mysql
    2)执行以下sql语句
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;
    3)退出mysql后重启mysql
    /etc/init.d/mysql restart

    3.配置防火墙,开放Linux的3306端口

    1)进入编辑页面
    vi /etc/sysconfig/iptables

    2)在指定位置新增以下配置

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

    这句要放在 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT 后面
    3)修改完保存退出,重启网卡服务
    service iptables restart
    4)查看端口开放信息
    service iptables status

  • 相关阅读:
    Codeforces Round #372 (Div. 1) B. Complete The Graph (枚举+最短路)
    HDU6430 Problem E. TeaTree【dsu on tree】
    HDU4358 Boring counting【dsu on tree】
    HDU6191 Query on A Tre【dsu on tree + 01字典树】
    2019 ICPC Asia Yinchuan Regional
    广义后缀自动机 例题
    2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17)
    BZOJ3238 [Ahoi2013]差异 【SAM or SA】
    HDU4622 Reincarnation【SAM】
    BZOJ1396 识别子串【SAM+SegmentTree】
  • 原文地址:https://www.cnblogs.com/ShouWangYiXin/p/10597788.html
Copyright © 2020-2023  润新知