Centos7.2如何安装Mysql

385 阅读5分钟

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%';

可是可是,因为现在是首次登录状态,未进行密码修改,你无法执行任何命令,所以你也无法查看密码策略的具体要求。 简单说下:

  1. 密码长度至少为8位
  2. 至少有1位大写字母
  3. 至少有1位数字
  4. 至少有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>

blog.csdn.net/u010584271/…

<utf8和utf8mb4区别>

www.cnblogs.com/amou/p/9063…

如果仍需要修改编码格式请按照如下操作进行:

修改/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去打开配置文件修改编辑即可。