远程Linux服务器配置Mysql
文章目录
做课程项目需要使用远程服务器,把踩坑经验记录下来,希望能帮到大家~
博主租的是阿里云最低配(贫穷)的服务器,使用 MBP 进行操作,同样 os 系统的朋友可以借鉴一下~
0. 登录到远程服务器
ssh root@101.132.69.33
> 按照提示输入密码即可(租用服务器时设置的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. 初始化远程服务器磁盘
-
登录阿里云服务器网页,进入当前实例的详情界面
-
【配置信息】 -> 【更多】 -> 【重新初始化磁盘】
-
初始化成功后,可以在【基本信息】->【远程连接】中直接网页远程连接服务器测试是否连接
- 此时会要求输入【远程连接密码】
- 该密码为购买服务器后初次连接时阿里给的一个随机6位数字,需要自己记下来!!!
- 如果忘记该密码,可以在阿里云官网修改远程连接密码,跟着指示做即可
-
连接成功后,打开终端,使用 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地址)