首先第一步
CentOS8更换阿里云源
1 | #备份源 2021年12月31日停止使用 |
注意:从2021年12月31日起,CentOS 8操作系统版本结束了生命周期(EOL),Linux社区已不再维护该操作系统版本。
阿里云centos源地址:https://developer.aliyun.com/mirror/centos
先释放ip再获取ip以防止下载失败
1 | [root@localhost ~]# dhclient -r |
下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
如果是CentOS7 使用以下命令更换CentOS7源
1 | [root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo |
centos8已停止更新:如果是centos8(centos8官方源已下线,建议切换centos-vault源)
1 | [root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo |
运行 yum makecache 生成缓存
1 | [root@localhost ~]# yum makecache |
或者直接
1 | [root@localhost ~]# yum clean all && yum makecache |
安装net-tools,不然使用不了ifconfig命令,看不了ip地址
1 | [root@localhost ~]# yum install net-tools -y |
安装vim编辑器
1 | [root@localhost ~]# yum install vim -y |
安装apache,用于网站访问
1 | [root@localhost ~]# yum install httpd -y |
启动httpd
1 | [root@localhost ~]# service httpd start |
ifconfig查看ip地址
1 | [root@localhost ~]# ifconfig |
现在还访问不了,因为需要关闭防火墙
1 | [root@localhost ~]# service firewalld stop |
检测是否安装php,如果什么信息也没有,那么你就要自己安装php了
1 | [root@localhost ~]# rpm -qa | grep php |
安装php
1 | [root@localhost ~]# yum install -y php |
安装php-mysql扩展
1 | [root@localhost ~]# yum install php-mysqlnd -y |
再次检测,看是否安装。看到如下信息就证明安装成功了。
1 | [root@localhost ~]# rpm -qa | grep php |
重新启动Apache服务
1 | [root@localhost ~]# service httpd restart |
测试php。在/var/www/html/目录下创建一个index.php文件。然后在浏览器输入http://127.0.0.1/index.php
1 | [root@localhost ~]# cd /var/www/html/ |
安装gd库,支持php图形验证码。在终端输入命令“yum install -y php-gd”
1 | [root@localhost ~]# yum install -y php-gd |
安装mysql
正如介绍中所提到的,Yum安装MySQL的命令实际上安装了MariaDB。要安装MySQL,我们需要访问MySQL社区Yum Repository,它为MySQL提供软件包。
在web浏览器中,访问:https://dev.mysql.com/downloads/repo/yum/
请注意,突出的下载链接不会直接指向这些文件。相反,它们会引导您进入下一个页面,邀请您登录或注册帐户。如果你不想创建帐户,你可以找到文本 不,谢谢,只需开始我的下载
,然后右键单击并复制链接位置,或者你可以在下面的命令中编辑版本号。
启用存储库
将最新的MySQL GPG密钥导入到您的系统中
1 | rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 |
安装mysql8.0
首先,您需要在您的系统上启用MySQL 5.7社区发布的yum存储库。MySQL的官方网站上提供了用于yum存储库配置的rpm包。
1 | curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm |
安装mysql5.7
首先,您需要在您的系统上启用MySQL 5.7社区发布的yum存储库。MySQL的官方网站上提供了用于yum存储库配置的rpm包。
1 | curl -sSLO https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm |
校验
一旦保存了rpm文件,我们将通过运行md5sum并将其与网站上列出的相应MD5值进行比较来验证下载的完整性:
1 | md5sum mysql57-community-release-el7-7.noarch.rpm |
开始安装
现在我们已经验证了文件没有损坏或更改,我们将安装程序包
1 | sudo rpm -ivh mysql57-community-release-el7-7.noarch.rpm |
1 | sudo yum install mysql mysql-server -y |
开启服务
启动mysql服务
1 | service mysqld start |
在安装过程中,会为MySQL根用户生成一个临时密码。使用以下命令在mysqld.log中找到它
1 | sudo grep 'temporary password' /var/log/mysqld.log |
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for
root@localhost: mqRfBU_3Xk>r
记下密码,您将在下一步中需要该密码来确保安装的安全,以及您将被迫更改密码的位置。默认密码策略需要12个字符,至少包含一个大写字母、一个小写字母、一位数字和一个特殊字符。
MySQL包含一个安全脚本,用于更改一些不太安全的默认选项,例如远程根登录和示例用户。
使用此命令可以运行安全脚本。
1 | sudo mysql_secure_installation |
Output
The existing password for the user account root has expired. Please set a new password.
New password:
这将提示您输入默认的root密码。一旦您输入它,您将被要求更改它。
输入一个新的12个字符的密码,该密码至少包含一个大写字母、一个小写字母、一位数字和一个特殊字符。提示时重新输入。
您将收到关于新密码强度的反馈,然后系统会立即提示您再次更改密码。既然你刚刚做到了,你可以自信地说“不”:
Output
Estimated strength of the password: 100
Change the password for root ? (Press y|Y for Yes, any other key for No) :
在我们拒绝再次更改密码的提示后,我们将按Y,然后按ENTER键回答所有后续问题,以删除匿名用户,禁止远程根登录,删除测试数据库和对它的访问,并重新加载权限表。
当然也可以使用以下命令修改密码
1 | mysqladmin -uroot -pmqRfBU_3Xk>r password Admin@123 |
Output
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
现在我们已经确保了安装的安全,让我们测试一下。
进入mysql(Admin@123是自己的密码):
1 | mysql -uroot -pAdmin@123 |
密码策略的所有参数:
1 | mysql> show variables like 'validate_password%'; |
创建用户(可选)
1 | USE mysql; #创建用户需要操作 mysql 表 |
查看用户权限(可选)
1 | # 可以通过查询 user 表获取 语法格式为 |
赋予权限(可选)
1 | # 语法格式 |
配置mysql字符集
- 编辑文件:
1
vim /etc/my.cnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#禁用SSL
skip_ssl
#跳过密码策略
validate_password=off
#add charset
[client]
#客户端字符集
default-character-set=utf8mb4
[mysql]
#客户端字符集
default-character-set=utf8mb4
[mysqld]
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#数据库默认字符集, 主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server=utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server=utf8mb4_unicode_ci - 重启mysqld:
1
service mysqld restart
- 连接上MySQL查看字符集:
1
show variables like 'character%';
- 连接上MySQL查看规则集:
1
show variables like 'collation%';
允许远程机器登录
修改mysql数据库中的 “user” 表里的 “host” 字段,从”localhost”改称”%”
1 | use mysql; |
1 | update user set host = '%' where user = 'root'; |
1 | flush privileges; |
mysqldump常见使用方法
- 导出所有数据库
1
mysqldump -uroot -proot --all-databases > /tmp/all.sql
- 导出db1、db2两个数据库的所有数据
1
mysqldump -uroot -proot --databases db1 db2 > /tmp/user.sql
- 导出db1中的a1、a2表
1
mysqldump -uroot -proot --databases db1 --tables a1 a2 > /tmp/db1.sql
- 只导出表结构不导出数据,–no-data
1
mysqldump -uroot -proot --no-data --databases db1 > /tmp/db1.sql
- 导入说明: 使用
mysql
而不是mysqldump
1
mysql -uroot -pAdmin@123 db < sql.sql
- 参数说明
–all-databases , -A
导出全部数据库
–databases, -B
导出几个数据库。参数后面所有名字参量都被看作数据库名
–force
在导出过程中忽略出现的SQL错误mysqldump -uroot -p --all-databases --force
–host, -h
需要导出的主机信息mysqldump -uroot -p --host=localhost --all-databases
–password, -p
连接数据库密码
–port, -P
连接数据库端口号
–user, -u
指定连接的用户名