Linux系统中安装MySQL

923 阅读2分钟

这是我参与8月更文挑战的第14天,活动详情查看:8月更文挑战

使用yum方式安装MySQL是最简单的,在使用压缩包安装是遇到不少问题,换用yum方式后简单迅速。

Linux系统中安装MySQL

1. 查看是否使用yum安装过MySQL

使用命令:rpm -qa | grep -i mysql

  • 如下图显示已经安装的相关模块,则要先卸载,再重新安装 image-20201221195202378
    • yum -y remove <全名称>:卸载相关模块
    • 如果上述命令卸载不掉,则使用命令: rpm -er <全名称>
  • 如果执行后无任何变化,表示没有安装,可以正常进行安装

2. 使用yum命令下载并安装MySQL相关服务

#进入/usr/local文件夹下
cd /usr/local

#下载.rpm文件
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 
rpm -ivh mysql57-community-release-el7-8.noarch.rpm 

#安装mysql服务
yum -y install mysql-server

#也可以指定安装目录
yum --install root=/usr/local/mysql --releaserver=/ -y install mysql-server
  • 等待所有服务模块安装完成 image-20201221203743558

3. MySQL配置文件

  • 配置文件:/etc/my.cnf
  • 日志文件:/var/log/mysqld.log
  • 服务启动脚本:/usr/lib/systemd/system/mysqld.service
  • socket文件:/var/run/mysqld/mysqld.pid
  • 添加mysql配置内容:
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    server_id = 1
    expire_logs_days = 3
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

4. MySQL服务相关命令

  • systemctl start mysqld.service:开启mysql服务
  • systemctl status mysqld.service:查看mysql服务状态,
    • -l:查看详细状态信息
  • systemctl stop mysql.service:停止mysql服务
  • systemctl restart mysql.service:重启mysql服务
  • systemctl enable mysqld:设置mysql开机自启动
  • systemctl daemon-reload:作为守护进程开启

5. MySQl密码修改

查看随机生成密码

安装mysql后,会在相应的日志文件中产生一个随机密码,可以使用命令查看:

  • cat /var/log/mysqld.log :查看日志文件全部内容
  • grep “password” /var/log/mysqld.log :使用正则匹配日志文件中的password关键字

跳过密码认证

随机密码登录失败时,需要配置跳过认证阶段,登录后使用sql语句更新密码

  • vi /etc/my.cnf:修改配置文件,添加skip-grant-tables后保存退出,表示登录不验证
  • 重启mysql服务,使用mysql直接登录mysql客户端

使用sql语句修改登录密码

  • mysql -u root -p:使用命令登录mysql,命令回车后输入日志中密码,登录mysql
  • ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxxxxxx';修改root账户的密码为xxxxxxxx
  • 默认密码策略要求密码是大小写字母+数字+特殊字符的组合且最少8位

6. 允许远程登录

设置允许其他端、navicate远程连接。

#连接客户端
mysql -u root -p Root@2020	
mysql> use mysql;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Root@2021';
#如果上句运行失败,则使用下面命令
#mysql> grant all on *.* to root@"%" identified by "Root@2021";
mysql> flush privileges;