远程Linux服务器,配置Mysql

远程Linux服务器配置Mysql

做课程项目需要使用远程服务器,把踩坑经验记录下来,希望能帮到大家~
博主租的是阿里云最低配(贫穷)的服务器,使用 MBP 进行操作,同样 os 系统的朋友可以借鉴一下~

0. 登录到远程服务器

ssh [email protected]
> 按照提示输入密码即可(租用服务器时设置的root用户密码)

1. 创建Linux用户

adduser username
> 按照提示输入用户密码(2次确认)
> 用户信息可以直接回车跳过,使用默认信息即可

a. 修改Linux用户信息

passwd mustafa

b. 把新建用户追加到sudo组中

usermod -aG sudo mustafa

c. 进入用户

su username

2. 开启服务器的3306端口

  • 进入阿里云服务器ECS的实例列表

  • 点击 “更多” -> “网络和安全组” -> “安全组配置”

  • 进入安全组列表,点击 “配置规则”

  • 若当前没有开放 3306 端口,点击右上角 “添加安全组规则”

    > 方向:入方向
    > 端口范围:3306/3306
    > 授权对象:0.0.0.0/0
    

3. 下载mysql

  • 查看是否安装mysql或mariaDB

    rpm -qa | grep mysql
    rpm -qa | grep mariadb
    
  • 安装依赖包

    sudo apt-get install -y libaio-*
    
  • 创建安装目录

    mkdir -p /usr/local/mysql
    cd /usr/local/src
    
  • 下载安装包并解压

    wget https://zy-res.oss-cn-hangzhou.aliyuncs.com/mysql/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
    
    tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
    
    mv mysql-5.7.17-linux-glibc2.5-x86_64/* /usr/local/mysql/
    
  • 增加mysql组和用户,将用户添加到组中

    groupadd mysql
    useradd -g mysql -s /sbin/nologin mysql
    
  • 初始化mysql数据库

    /usr/local/mysql/bin/mysqld --initialize-insecure --datadir=/usr/local/mysql/data/ --user=mysql
    
  • 更改mysql安装目录的权限

    chown -R mysql:mysql /usr/local/mysql
    
  • 设置开机自动启动

    cd /usr/local/mysql/support-files/
    cp mysql.server  /etc/init.d/mysqld
    chmod +x /etc/init.d/mysqld             # 添加执行权限
    vim /etc/rc.local
    
    • 在 rc.local 文件中添加

      /etc/init.d/mysqld start
      

4. 启动mysql服务

  • 启动 mysql 服务

    sudo /etc/init.d/mysqld start
    
  • 查看 mysql 服务状态

    sudo /etc/init.d/mysqld status
    
  • 查看 3306 端口状态

    netstat -nlt | grep 3306
    

5. 创建mysql用户并授予权限

  • 登录到mysql

    sudo mysql -u root -p
    
  • 查看当前mysql用户

    select host, user, password from user;
    
  • 设置允许外部通过用户访问数据库

    grant all privileges  on *.* to root@'%' identified by "password";
    
    • 刷新

      flush privileges;
      
  • 查看用户权限

    show grants for dev;
    
  • 创建新用户

    create user dev identified by '123456';
    
    
  • 修改用户密码

    update user set password=password("123456") where user="dev";
    
    • 修改完密码会显示加密后的子串,而不是“123456”

6. 忘记mysql用户密码

报错信息:

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

a. 修改my.cnf文件
[mysqld]
skip-grant-tables
b. 重启mysql
sudo /etc/init.d/mysqld restart
c. 输入"mysql"直接进入
  • 修改root密码,语句如上
d. 改回my.cnf文件,重启mysql

7. 远程连接的坑

  • 查看是否安装ssh

    rpm -qa |grep ssh
    
  • 安装ssh

    sudo apt-get install ssh
    
  • 启动ssh服务

    /etc/init.d/sshd start
    
    
  • 查看ssh服务状态

    systemctl status sshd.service
    
  • my.cnf添加(mysql server没有监听3306端口,或只监听了localhost)

    bind-address = 0.0.0.0
    
  • ssh_config(允许远程访问服务器ssh)

    GSSAPIAuthentication no
    
  • 上述都不是解决方法!!!!!在**/etc/mysql/mariadb.conf.d文件夹内修改50-server.cnf**文件,注释掉 bind-address = 127.0.0.0

8. 连接mysql报错

mysql: unknown variable 'bind-address=0.0.0.0'
  • 报错原因

    • Mysql server 和 client 都要读 my.cnf,但 client 无法识别 bind-address 字段
  • 解决方法:

    mysql --no-defaults -u[username] -p[password] [database]
    

9. Mysql 时区CST问题

  • 进入mysql,查看当前系统时区

    show variables like "%time_zone%";
    
  • 修改 /etc/mysql/my.cnf

    default-time-zone = '+08:00'
    
  • 重启 mysql 生效

    sudo /etc/init.d/mysqld restart
    

10. 初始化远程服务器磁盘

  1. 登录阿里云服务器网页,进入当前实例的详情界面

  2. 【配置信息】 -> 【更多】 -> 【重新初始化磁盘】

  3. 初始化成功后,可以在【基本信息】->【远程连接】中直接网页远程连接服务器测试是否连接

    • 此时会要求输入【远程连接密码】
    • 该密码为购买服务器后初次连接时阿里给的一个随机6位数字,需要自己记下来!!!
    • 如果忘记该密码,可以在阿里云官网修改远程连接密码,跟着指示做即可
  4. 连接成功后,打开终端,使用 ssh 连接服务器

    • 此时 mac ssh 会报错:
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the ECDSA key sent by the remote host is
    SHA256:lmIZcQm8+wT8W5Cw+QRuBlFUCcE8J8lNfF52On//kMA.
    Please contact your system administrator.
    Add correct host key in /Users/mustafa/.ssh/known_hosts to get rid of this message.
    Offending ECDSA key in /Users/mustafa/.ssh/known_hosts:2
    ECDSA host key for 101.132.69.33 has changed and you have requested strict checking.
    Host key verification failed.
    
    
    • 这是由于Mac保存了【秘钥信息】,你初始化服务器之后,秘钥就变了,所以不能登录,利用下述程序清除旧的秘钥信息即可正常登录。
    ssh-keygen -R IP(你远程服务器ip地址)
    

猜你喜欢

转载自blog.csdn.net/qq_42290765/article/details/88356453
今日推荐