搭建一个阿里云服务器

阿里云服务器

一.创建一个实例

重点是安装Linux镜像的版本
在这里插入图片描述

注意:7.5和8的镜像是有区别的,最好安装7.5的 ps.因为很多人用解决办法多,所以这期以7.5为例

二.安装下载MySQL

在这里插入图片描述
可以用5版本的

MySQL 8:
mysql官方下载Linux版本,我这里下载的是:

1.mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

2.将压缩包扔到Linux的 /usr/local文件夹中

3.使用解压命令解压:

tar xvf /usr/local/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

4.重命名解压后得到的文件夹, 名称变更为 mysql (mysql一些默认配置里Linux访问路径为:/usr/local/mysql, 直接重命名后,后续一些地方则不需要更改)

5.进入被重命名过的文件夹中,再创建一个文件夹,取名:data

(1) cd /usr/local/mysql
(2) mkdir data
data是MySQL的日志目录文件

7.创建 /etc/my.cnf . 看其他博友说的,好像是8.0这个版本通过二进制文件解压安装的话是不存在的. 这里手动创建一个

(1) vi /etc/my.cnf
(2)复制以下内容进去:

[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
max_connections=10000
max_connect_errors=10
character-set-server=UTF8MB4
default-storage-engine=INNODB
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

(需要修改的地方):
basedir: /usr/local/mysql ------- 使用给定目录作为根目录(安装目录)
datadir: /usr/local/mysql/data --------- 从给定目录读取数据库文件,存储mysql数据文件夹
重要的两个:
lower_case_table_names: 值为1,忽略大小写,即查询时候不分大小写(一旦设置并启动后,再更改比较烦,慎重)
sql_mode: (sql中select后面的字段必须出现在group by后面,或者被聚合函数包裹,不然会抛出上面的错误,允许使用 GROUP BY 函数)
(3)ESC -> :wq (保存文件)

8.创建mysql用户, 进行授权

1: 创建mysql用户,用户组(将mysql用户放进用户组内)

(1): groupadd mysql
(2): useradd -g mysql mysql

2: 授权

(1) chown -R mysql.mysql /usr/local/mysql
(2) chmod 755 /usr/local/mysql
(3) chmod 644 /etc/my.cnf

9. 生成mysql基础数据(有密码)

(1) cd /usr/local/mysql/bin

(2) 生成mysql数据库基础数据: **

./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lower_case_table_names=1 --initialize
**

文字说明:
–user=mysql : 指定运行mysqld进程的用户名。可更改,主要为了后续添加多个mysql管理员时方便
–basedir=/usr/local/mysql: 安装目录
–datadir=/usr/local/mysql/mysql-files: 数据存放目录
–lower_case_table_names=1: 不区分大小写(这个根据自己需求来,可以先搜索看看)
注:
1.该命令运行后, 会产生一个临时登录密码, 在返回结果的最后一行(可搜索看看)
2.执行该命令时, 可能会报错: ./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
3.解决办法(可选) | 下面两个我自己在执行完第一个命令之后就可以了:
(1)安装numactl. 我的linux系统是Centos的, 执行命令: yum -y install numactl
(2)安装libaio. 我的linux系统是Centos的, 执行命令: yum install -y libaio
4.安装完成后, 再次执行上面的 “生成mysql数据库基础数据” 命令即可
5.命令执行后, 记得将最后一行的临时登录密码记录下来, 后续会被使用到

10.添加mysql服务到系统,并完成授权

(1) cd /usr/local/mysql
(2) cp -a ./support-files/mysql.server /etc/init.d/mysql
(3) chmod +x /etc/init.d/mysql
(4) chkconfig --add mysql

三. mysql启动: service mysql start

mysql状态查看: `service mysql status`

1. mysql登录

(1) `mysql -uroot -p` 
(2) 需要输入的密码是 第9步中运行生成基础数据后, 返回结果中给出的临时密码

注:
(1) 执行 mysql -uroot -p 时可能报错: -bash: mysql: command not found
(2) 解决办法 | 执行命令: /usr/local/mysql/bin/mysql restart
(3) 执行命令后, 再次输入 mysql -uroot -p

2. 修改密码

(1) `ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxx';` (xxxx - 这里需要自己设置密码)  
(2) `flush privileges;` (密码生效)

3. 允许远程连接

(1) `use mysql;`
(2) `update user set host='%' where user='root';` 
(3) `flush privileges;`

注:
(1): 成功执行后, 表明该mysql已经启动了远程连接登录. 如果这时候你使用工具进行连接时候是失败的, 你需要查看下你的服务器安全组是否开放了3306(mysql连接默认端口)端口

4.设置开机自启动

(1) 复制mysql安装目录下的mysql.server : cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
(2) 赋予权限:chmod +x /etc/init.d/mysqld
(3) 添加服务: chkconfig --add mysqld
(4) 查看服务列表: chkconfig --list

注:

  1. mysql安装目录为: /usr/lcoal/mysql - 执行第一个命令时,注意路径
  2. 执行(4)后, 看到mysql行数据 - 3,4,5都为"开"或"on"表示成功

可能会出现的一些问题

1.开放远程登录权限

mysql> grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

2如果报这个错在这里插入图片描述
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

2(则是)密码简单不符合MySQL密码策略

查看MySQL密码初始的策略. SHOW VARIABLES LIKE 'validate_password%';

在这里插入图片描述

关于 mysql 密码策略相关参数;
1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
5.7和8.0不同
mysql数据库5.7和8.0由于全局变量名字改了所以运行的命令不同,但是本质一样。 5.7是:set global validate_password_policy=0; 8.0是:set global validate_password.policy=0;

3要连接成功得释放3306端口

阿里云添加安全组入反向
手动创建一个入口
在这里插入图片描述

4若出现FirewallD is not running错误解决

执行firewall-cmd --permanent --zone=public --add-port=8080/tcp,提示FirewallD is not running
通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。
通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
再次通过systemctl status firewalld查看firewalld状态,显示running即已开启。
再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功。

5阿里云服务器:防火墙默认是不开启,要手动开启

设置远程连接mysql的新账户密码

>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

查看防火墙:systemctl status firewalld
查看3306状态:firewall-cmd --zone=public --query-port=3306/tcp

为no表示关闭中,则打开端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重载防火墙:firewall-cmd --reload
再次查看3306端口:firewall-cmd --zone=public --query-port=3306/tcp

链接: 错误.

链接: 安装MySQL.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值