目录

安装MySQL教程

安装教程参考1 安装教程参考2 赋权限教程

linux安装(压缩包方式)

官网下载安装

注意事项

  1. centos7对应下载 Linux Generic

/img/安装MySQL教程/1.png

检查服务器是否有MySQL

  1. rpm -qa|grep mysql 显示没有东西,便是没有安装过mysql
  2. 如果安装过或者系统自带,便需要去查询所有的mysql对应的文件,进行卸载,全部删除
  • whereis mysql
  • find / -name mysql

卸载CentOS7自带的mariadb

  1. 查看系统自带的 rpm -qa|grep mariadb
  2. 卸载Mariadb rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
  3. 查看etc下面是否有的my.cnf,cat /etc/my.cnf 有则删掉 rm /etc/my.cnf

为什么要卸载CentOS7自带的mariadb?

  • 首先centos7已经不支持mysql,因为收费,所以内部集成了mariadb,
  • 而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。

创建mysql用户组

  1. 检查有没有mysql用户组,没有便进行创建
1
2
  cat /etc/group | grep mysql
  cat /etc/passwd |grep mysql
  1. 创建MySQL用户组和用户
1
2
groupadd mysql
useradd -r -g mysql mysql

上传服务器

  • 解压到当前mysql5.7.41 tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz -C .
  • 改名 mv mysql-5.7.41-linux-glibc2.12-x86_64 mysql5.7.41
  • 移动到默认位置 /usr/local

安装MySQL

  1. 给用户组添加权限
1
2
chown -R mysql:mysql /usr/local/mysql5.7.41
chmod -R 755 /usr/local/mysql5.7.41
  1. 进入bin目录,编译并初始化mysql,请务必记住这个密码
1
2
cd /usr/local/mysql5.7.41/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql5.7.41/data --basedir=/usr/local/mysql5.7.41
  1. 编写etc目录下的my.cnf配置文件,并添加配置
1
2
//进入配置文件
vi /etc/my.cnf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
//在插入模式下编写,完成后保存,当然这个可以自己添加
[mysqld]
datadir=/usr/local/mysql5.7.41/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感1,敏感为0
lower_case_table_names=1
  1. 授予my.cnf 775权限
1
chmod -R 775 /etc/my.cnf
  1. 修改mysql5.7.41/support-files/目录下的mysql.server文件,如下图中5个位置的/usr/local/mysql全部修改成自己安装的目录

/img/安装MySQL教程/2.png

  1. 启动服务,并添加软链接
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
// 查询服务
ps -ef|grep mysql
ps -ef|grep mysqld

// 启动服务
/usr/local/mysql5.7.41/support-files/mysql.server start

//添加软连接,并重启mysql 服务
ln -s /usr/local/mysql5.7.41/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql5.7.41/bin/mysql /usr/bin/mysql
//重启mysql服务
service mysql restart
  1. 登录mysql,密码是之前让记住的,并修改密码
1
2
3
4
 // 登录
 mysql -u root -p
 // 修改密码
set password for root@localhost = password('你的密码');
  1. 开启远程连接
1
2
3
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
  1. 开放端口

  2. 设置开启自启(按需选择)

1
2
3
4
5
6
7
8
//将服务文件拷贝到init.d下,并重命名为mysqld
cp /usr/local/mysql5.7.41/support-files/mysql.server /etc/init.d/mysqld
//赋予可执行权限
chmod +x /etc/init.d/mysqld
//添加服务
chkconfig --add mysqld
//显示服务列表
chkconfig --list

创建mysql用户,赋权限

教程参考

  1. 登录数据库(root权限,需要有mysql.user查看权限的用户))
  2. 创建用户 create user 'hahaen'@'%' identified by '123456';
  • hahaen用户名
  • 123456密码
  • %指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
  1. 修改用户密码 set password for hahaen=password('456789');
  2. 删除用户 drop user hahaen;
  3. 授权
1
2
3
4
5
6
grant all on *.* to hahaen;
# all :所有数据库权限,包括 select ,update ,insert ,delete 

grant select,insert on leo.* to hahaen;
# leo: 数据库名,表示该用户只可对该数据库进行操作
# *: 表名,表示该用户只可对该表进行操作
  1. 取消用户的权限 revoke select on leo .* from hahaen;
  2. 查看用户权限 show grants for hahaen ;
  3. 更新数据库 flush privileges; 所有操作必须执行命令立即生效

修改root密码的4种方法

参考

  1. 用SET PASSWORD命令
1
2
3
首先登录MySQL。 
格式:mysql> set password for 用户名@localhost = password(‘新密码’); 
例子:mysql> set password for root@localhost = password(‘123’);
  1. 用mysqladmin
1
2
格式:mysqladmin -u用户名 -p旧密码 password 新密码 
例子:mysqladmin -uroot -p123456 password 123
  1. 用UPDATE直接编辑user表
1
2
3
4
首先登录MySQL。 
mysql> use mysql; 
mysql> update user set password=password(‘123’) where user=’root’ and host=’localhost’; 
mysql> flush privileges;
  1. 在忘记root密码的时候,可以这样
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
以windows为例: 
1. 关闭正在运行的MySQL服务。 
2. 打开DOS窗口,转到mysql\bin目录。 
3. 输入mysqld –skip-grant-tables 回车。–skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。 
6. 连接权限数据库: use mysql; 。 
6. 改密码:update user set password=password(“123”) where user=”root”;(别忘了最后加分号) 。 
7. 刷新权限(必须步骤):flush privileges; 。 
8. 退出 quit。 
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。