1. 使用 yum 安装mysql
yum -y install mysql-server # 默认安装mysql最新版本
2. 安装后确认mysql进程开启
- 查看当前进程中是否有mysql进程
ps -el | grep mysqld # mysql服务对应的守护进程名称为mysqld
或者使用如下命令
systemctl status mysqld # 如果有看到active(running)证明启动成功
- 如果没有开启,需要手动开启
systemctl start mysqld
- 设置开机自启动
systemctl enable mysqld
systemctl daemon-reload
3. 登陆mysql
- 查看初始登陆密码
vi /var/log/mysqld.log # 使用这个需要你睁大眼睛仔细瞅哦
或者使用grep命令精确找到你的初始密码
grep "A temporary password" /var/log/mysqld.log # 查看结果如下图所示

- 进行登录
mysql -uroot -p # 回车后输入初始密码
- 修改初始密码
初次登录后无法执行其他mysql命令
show databases; # 比如你想执行这个命令,是不可以的~

使用 ALTER USER 命令修改登录密码
ALTER USER USER() IDENTIFIED BY '123456'; # 修改当前登录用户的密码 (首次登录只能用这个)
ALTER USER testuser IDENTIFIED BY '123456'; # 基本使用
ALTER USER testuser IDENTIFIED BY '123456' PASSWORD EXPIRE;# 使密码过期
ALTER USER testuser IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; # 使密码从不过期
ALTER USER testuser IDENTIFIED BY '123456' PASSWORD EXPIRE DEFAULT; # 按默认设置过期时间
ALTER USER testuser IDENTIFIED BY '123456' PASSWORD EXPIRE INTERVAL 90 DAY; # 指定过期间隔
在设置密码的时候有个很讨厌的点,就是mysql默认的密码策略是中级,查看密码策略的命令:
show variables like 'validate_password%';
可是可是,因为现在是首次登录状态,未进行密码修改,你无法执行任何命令,所以你也无法查看密码策略的具体要求。 简单说下:

- 密码长度至少为8位
- 至少有1位大写字母
- 至少有1位数字
- 至少有1位符号 所以暂时你只有委屈下,使用稍微复杂的密码啦。后续如果是内网访问,无需这么麻烦,需要修改的话,可以参考此篇文章: www.jianshu.com/p/b437566cc…
4. 创建用户并授权
- 创建用户
# 标准命令语法:
create user 'username'@'host' identified by 'password';
# 例如:
create user 'shibaoshun'@'%' identified by 'Iloveyou3000times!';
- 给用户授权
# 标准命令语法:
GRANT privileges ON databasename.tablename TO 'username'@'host'
# 例如:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; # 指定具体的增删改查操作权限
GRANT ALL ON *.* TO 'pig'@'%'; # 授予所有权限
GRANT ALL ON databasename.* TO 'pig'@'%'; # # 指定某个数据库
- 授权完成后刷新下
flush privileges
特别注意
用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
- 撤销用户授权
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
5. 如果你在测试远程登录时遇到以下几种问题:
(1) Mysql默认不允许远程登录,我们需要设置下,并且防火墙开放3306端口;
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 防火墙开放端口
firewall-cmd --reload # 重新载入
(2) 如果你的mysql服务器是8.0+版本,而使用的mysql客户端版本低。大概率会出现如下错误。
错误2059:无法加载身份验证插件'caching_sha2_password'”错误
简单的说,导致这个问题的原因是因为MySQL客户端版本太低(5.5.60)(低版本的客户端认为mysql_native_password认证插件,而高版本认caching_sha2_password插件),导致连接服务器时出现这个错误。那么修正的办法就是将指定用户的认证方式修改为低版本的 mysql_native_password 方式(需要重新指定密码)。
- 按用户账号修复此问题,请参考以下文章来修正这个问题 chengxuzhilu.com/1684.html
- 全局修改配置,即所有用户的密码验证方式都修改为老的
mysql_native_password方式,则需要修改配置文件。 请参考如下链接: blog.csdn.net/airt_xiang/…
6. 配置默认编码为UTF-8
mysql8.0+版本后的默认编码格式为utf8mb4,是兼容4位的中文字符的。这个编码和utf8的区别可以参考以下文章:
<永远不要在MySQL中使用utf8,改用utf8mb4>
<utf8和utf8mb4区别>
如果仍需要修改编码格式请按照如下操作进行:
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
编辑保存完 重启mysql服务
systemctl restart mysqld
重启后查看写mysql中此时的编码
show variables like '%character%';
7. 关于mysql的卸载
linux下卸载mysql方法linux下mysql的卸载
- 查找已安装的myslq 版本:
rpm -qa | grep mysql (注意大小写,如果mysql 不行就换MySQL)
- 将搜索出的包名卸载
rpm -e –nodeps mysql-5.0.77-4.el5_4.2 (nodeps表示强制删除)
8.查看mysql的安装路径
- 查看文件安装路径
由于软件安装的地方不止一个地方,所有先说查看文件安装的所有路径(地址)。
这里以mysql为例。比如说我安装了mysql,但是不知道文件都安装在哪些地方、放在哪些文件夹里,可以用下面的命令查看所有的文件路径 在终端输入:
whereis mysql
如果你安装好了mysql,就会显示文件安装的地址,例如我的显示(安装地址可能会不同)
mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
- 查询运行文件所在路径(文件夹地址)
如果你只要查询文件的运行文件所在地址,直接用下面的命令就可以了(还是以mysql为例):
which mysql
终端显示:
/usr/bin/mysql
9.查看或者编辑mysql配置文件
首先先看看你的mysql在哪,通过which命令
which mysql
显示出目录比如我的是下面这个
/usr/bin/mysql
接下来就可以针对这个目录通过一些命令查看配置文件在哪了,如下
/usr/bin/mysql --verbose --help | grep -A 1 'Default options'
然后在下面会出现一些信息比如我的
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
这个信息的意思是:
服务器首先读取的是/etc/mysql/my.cnf文件,如果前一个文件不存在则继续读/etc/my.cnf文件,如若还不存在便会去读~/.my.cnf文件。一般就去按照第一个路径 /etc/mysql/my.cnf去打开配置文件修改编辑即可。