linux 安装mysql yum源安装
如何安装Mysql
使用yum源安装
1.卸载已有的mysql
查询已安装的mysql(可能没有)
yum list installed | grep mysql
image.png如果存在已安装的,则卸载
yum -y remove mysql-community-*
*在这里匹配任意字符,可以一次卸载多个。
image.png卸载完成
image.png2.配置仓库
由于CentOS 的yum源中没有mysql,需要到mysql的官网下载rpm文件或者配置 repo文件去镜像下载。
mysql 镜像之一:https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/
如何配置 repo文件:
[root@localhost ~]# vim /etc/yum.repos.d/mysql.repo
添加
[mysql5]
name=mysql57
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0
image.png
image.png
3.安装指定版本
[root@localhost ~]# yum install mysql-community-server-5.7.14 -y
安装带server版本的5.7.14 yum会自动把其他的都装好,这也是yum安装的好处
4.检查是否安装成功
yum list installed | grep mysql
rpm -qa |grep mysql 也是可以的
5.启动
service mysqld start
6.跳过登录验证.
如何设置跳过登录验证
6.1 编辑my.cnf文件: vim /etc/my.cnf
image.png
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
image.png
6.2保存文档并退出
6.3重新启动mysql
image.png
6.4 登录
image.png这里免密登录不要需要输入密码直接回车
7.免密登录后设置初始密码
mysql5.7开始 密码字段不再是password而是authentication_string:
update mysql.user set authentication_string=password('新密码') where user='root' and Host = 'localhost';
image.png8.测试用新密码登录
先退出: quit
image.png启动mysql
service mysqld start
登录
image.png出现Mysql> 代表登录成功.
9.取消“跳过登录验证”
现在有密码了,需要取消“跳过登录验证”,不然可以无密码登录
1.输入quit;退出mysql
image.png2.编辑my.cnf文件
vim /etc/my.cnf
image.png删除刚加入的“skip-grant-tables”,保存退出
3.重新启动mysql
image.png10.修改初始设定的密码
1.第一次安装完mysql不管是用临时密码登入还是通过免密方式修改密码登入之后,如果没有马上修改密码,而有其他的对数据库的操作动作都会报错,要求先修改密码。
image.png2.这个时候需要修改密码
如果密码格式简单(比如只有小写字母和数字),会报错
alter user user() identified by 'daimenglaoshi666'
image.png如果密码格式复杂(有大写字母,小写字母,数字,特殊符号),则成功
alter user user() identified by 'Daimeng666=';
image.png原因分析:
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
image.png强度为LOW,LOW代表什么?代表密码任意,但长度在8位或以上。
强度为MEDIUM,这个强度代表什么?代表密码包括:数字、大写字母、小写字母、特殊符号、长度8位以上。
强度为STRONG,这个时候必须先满足0,1的要求,然后它还追加了一个,对于密码中任意连续4个(或4个让上)字符不得是字典中的单词。
查看默认的密码策略会发现是 1 。
select @@validate_password_policy
image.png可以通过命令自己修改策略。
set global validate_password_policy=0;
image.png再修改密码,则简单密码也可以通过,一般开发时还是建议设置复杂一点的密码。
image.png3 密码修改好以后,可以正常操作数据库了
image.png11.测试sql,和windows里一样
image.png12.其它配置
12.1开启远程控制
MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。
方式一:
1.1、连接服务器: mysql -u root -p
1.2、看当前所有数据库:show databases;
1.3、进入mysql数据库:use mysql;
1.4、查看mysql数据库中所有的表:show tables;
1.5、查看user表中的数据:select Host, User from user;
1.6、修改user表中的Host: update user set Host='%' where User='root';
说明: % 代表任意的客户端,可替换成具体IP地址。
1.7、最后刷新一下:flush privileges;
注意:一定要记得在写sql的时候要在语句完成后加上" ; "
方式二:
使用 grant 命令添加远程访问权限
grant all privileges on *.* to root@"%" identified by "Daimeng666=";
或
grant all privileges on *.* to root@"192.168.1.4" identified by "Daimeng666=";
格式说明
grant all privileges on 数据库名.表名|*.* to 创建的用户名(root)@"%|ip" identified by "密码";
@ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)
如果要移除允许远程访问的权限:
1.进入mysql数据库:use mysql;查询user表会发现表中新增了一条记录
image.png2.删除刚添加的权限记录
delete from user where host='%' and user='root';
- 刷新一下:flush privileges;让权限生效
12.2 关闭MySQL
service mysqld stop
12.3 重启MySQL
service mysqld restart
12.4 查看MySQL运行状态
service mysqld status
12.5 设置开机启动
service mysqld enable
12.6 关闭开机启动
service mysqld disable
12.7 配置默认编码为utf8:
vi /etc/my.cnf #添加 [mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'
其他默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service socket
文件:/var/run/mysqld/mysqld.pid
12.8 查看版本
select version();