一、安装前的环境检查
1、切换至root用户
su root
二、检查Centos上有没有安装过MySQL
2.1、检查是否有MySQL正在运行
// 检查MySQL进程
ps ajx | grep mysql
// 检查mariabd进程
ps ajx | grep mariabd
- 如果有进程存在,需要关闭进程。
- 如果没有发现进程存在,说明没有MySQL运行
- 注意:mariabd是MySQL的分支,需要检查。
systemctl stop mysqld.service
2.2、检查是否有MySQL的安装包
rpm -qa | grep mysql
- 若有安装包出现,并且我们之前没有用过 MySQL ,那就将这些安装包删除。
rpm -qa | grep mysql | xargs yum -y remove // 批量删除安装包
2.3、检查是否有MySQL相关的配置文件
ls /etc/my.cnf
- 若有配置文件,删除即可
rm -rf /etc/my.cnf
2.4、检查是否有客户端和服务端
which mysql //检查客户端
which mysqld //检查服务端
三、下载MySQL安装包(本次使用wget进行下载安装)
3.1、查询Linux是什么版本
cat /etc/redhat-release
3.2、进入官网找到系统对应的版本:http://repo.mysql.com
3.3、下载上一步找到的对应的版本
wget https://repo.mysql.com/mysql84-community-release-el7.rpm
3.4、解压安装包
rpm -ivh mysql84-community-release-el7.rpm
3.5、检查是否解压成功
ls /etc/yum.repos.d/ -l
四、安装 MySQL
yum install -y mysql-community-server
- 检查是否安装成功
ls /etc/my.cnf
which mysqld
which mysql
五、启动以及登录MySQL
5.1、启动MySQL
systemctl start mysqld
5.2、检查是否启动成功
ps ajx | grep mysqld
5.3、在/var/log/mysqld.log下查看MySQL初始化的密码
cat /var/log/mysqld.log
5.4、登录MySQL(此时不知道登录密码,无法登录)
mysql -u root -p
5.5、修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
5.6、设置 root 远程访问
- 修改root用户的host为%
update user set host='%' where user='root';
- 设置root远程访问
grant all privileges on *.* to root@'%' with grant option;
flush privileges;
至此MySQL的安装以及root的设置全部完成
六、Mysql创建用户并赋权以及数据库
6.1、创建用户
- 6.1.1、创建本地用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
这将在MySQL中创建一个名为’username’的用户,并设置密码为’password’。这个用户只能从本地主机(localhost)进行连接。
- 6.1.2、创建远程用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
这将创建一个名为’username’的用户,并设置密码为’password’。这个用户可以从任何远程主机进行连接。
6.2、创建数据库
CREATE DATABASE dbname;
这将在MySQL中创建一个名为’dbname’的数据库。
6.3、用户授权
- 6.3.1、授权指定数据库
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'localhost';
这将授予’username’用户对’dbname’数据库的所有权限,并限制只能从本地主机进行连接。如果远程访问,则:
GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'%';
- 6.3.2、授予用户对所有数据库的访问权限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
这将授予’username’用户对所有数据库的所有权限,并限制只能从本地主机进行连接。如果远程访问,则:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
- 6.3.3、刷新权限
FLUSH PRIVILEGES;
刷新MySQL的权限表,以使新的用户和权限生效。