mysql入门与提高实践:陪你一起学mysql一
mysql入门与提高实践:陪你一起学mysql一Tests PerformePolicy[mysqld] # MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写 # 0:大小写敏感 1:大小写不敏感 lower_case_table_names=1 # 默认字符集 character-set-server=utf8 # 设置时区 default-time_zone = ' 8:00' 启动systemctl start mysqld 设置root用户密码安装了mysql5.7之后初始密码不再默认为空,初始密码会生成一个默认密码。密码会输出到mysql日志中。日志文件的位置在 /var/log/mysqld.logvim /var/log/mysqld.log 执行vim命令后,输入"/password",如下截图的位置即为初始密码#1.登录mysql [root@local
前言与其他的大型数据库例如oracle SQL Server等相比,mysql自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于 MySQL是开放源码软件,因此可以大大降低总体拥有成本,所以被广泛的应用在各行各业。受欢迎,应用广,所以一般都是面试中的必问的知识点,所以接下的一段时间,跟随小编一起来学习下mysql的相关知识吧!小编将从mysql的安装,架构,事务,索引,锁,分库分表,性能优化等多个方面进行分享。百里之行始于足下,今天我们从mysql的基础安装篇开始,大家快来一起学习吧!
环境准备- 系统:centos7
- mysql:5.7
这一步主要是检查当前centos系统中,之前是否安装过mysql,如果安装过,则需要完全删除mysql相关的一些包,以避免发生一些不可思议的报错,你懂的
- rpm查看命令
rpm -qa|grep mysql
- rpm删除命令
rpm -e mysql-community-common-5.7.36-1.el7.x86_64
rpm -e mysql-community-client-5.7.36-1.el7.x86_64
rpm -e mysql-community-server-5.7.36-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.36-1.el7.x86_64
rpm -e mysql-community-libs-5.7.36-1.el7.x86_64
- 全局查找
find / -name '*mysql*'
- 删除
# 以 /etc/my.cnf等为例
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
(按照以上命令,全部删除mysql相关文件)
开始安装使用yum进行安装#下载yum源
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
#安装yum源
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#使用此命令可以查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些子存储库已启用或禁用
yum repolist all | grep mysql
#关闭mysql8的下载源
yum-config-manager --disable mysql80-community
#开启mysql5.7下载源
yum-config-manager --enable mysql57-community
#安装mysql5.7
yum install -y mysql-community-server
配置
vim /etc/my.cnf
修改内容如下:
[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8
# 设置时区
default-time_zone = ' 8:00'
启动
systemctl start mysqld
设置root用户密码
安装了mysql5.7之后初始密码不再默认为空,初始密码会生成一个默认密码。密码会输出到mysql日志中。日志文件的位置在 /var/log/mysqld.log
- 查找初始密码
vim /var/log/mysqld.log
执行vim命令后,输入"/password",如下截图的位置即为初始密码
- 修改初始密码:
#1.登录mysql
[root@localhost ~]# mysql -uroot -p't)WMH;uUe9Jn'
#mysql5.7以后对密码的强度是有要求的,必须是字母 数字 符号组成的,如果想设置简单密码例 如‘root’,需要做以下设置
#2.设置密码长度最低位数
mysql> set global validate_password_length=4;
#3.设置密码强度级别
mysql> set global validate_password_policy=0;
#4.修改密码
mysql> alter user 'root'@'localhost' identified by 'root';
密码复杂度的一些常规设置如下:
Policy |
Tests Performe |
0 or LOW |
Length |
1 or MEDIUM |
numeric lowercase/uppercase and special characters |
2 or STRONG |
Length; numeric lowercase/uppercase and special characters |
注意:默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
MySQL远程连接授权登录mysql## -u:指定数据库用户名
## -p:指定数据库密码,
## 记住-u和登录密码之间没有空格
mysql -uroot -proot
授权
授权命令:
grant 权限 on 数据库对象 to 用户
示例:
## 授予root用户对所有数据库对象的全部操作权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
说明:
- ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。
- . :表示所有库中的所有表
- 'root'@'%' : myuser是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。很多人购买了阿里云或者腾讯云服务器,安装了mysql之后,使用navicat连接不上,就是这个地方没有设置为%
- IDENTIFIED BY 'mypassword' :mypassword是数据库的密码。
其实以上我们的mysql安装步骤就已经结束了,防火墙的设置只是针对有外网访问mysql的需求,这里看实际需求,需要的话就设置一下
systemctl stop firewalld(默认)
systemctl disable firewalld.service(设置开启不启动)
忘记密码怎么办
mysql密码是不是都是记住密码,长时间不输入密码,导致忘记了,不知道你是不是,反正小编经常忘记,所以记录下忘记密码后重置密码的方法
修改配置vim /etc/my.cnf
修改内容如下:
## 在/etc/my.cnf添加如下内容即可
skip-grant-tables
说明: skip-grant-tables 选项的意思是启动 MySQL 服务的时候跳过权限表认证。 启动后,连接到 MySQL 的 root 将不需要口令(危险)。此项设置很危险,生产环境中切记勿使用!生产环境中切记勿使用!生产环境中切记勿使用!
重启mysqlsystemctl restart mysqld.service
登录mysql
## 使用root登录mysq
mysql -u root
## 切换到到mysql库
use mysql
## 更新root密码
update user set authentication_string=password('123456') where User='root';
修改配置
将/etc/my.cnf里的skip-grant-tables配置项删除
重启mysqlsystemctl restart mysqld.service
重置密码完成,可以愉快的使用新密码登录mysql了!
结束此次分享的mysql安装就这么多了,需要交流学习可以关注公众号【温故知新之java】,互相学习,一起进步