跳至主要內容

mysql

chanchaw大约 5 分钟linuxcentos

mysql

第一种安装方法

  • 2019年7月15日 13:19:40
  • 环境参数:CentOS 7.3 64位
  • 安装步骤
    1. 安装前将 selinux 和 firewall 都关闭
    2. 下载 MySQL yumwget [http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm](http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm)
    3. wget 会将目标下载到当前所在目录下,可以通过命令 ls 来查看当前目录下的所有文件
    4. 通过命令 sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm 安装MYSQL
    5. 安装MYSQL服务端:yum install -y mysql-community-server
    6. 执行:service mysqld start 启动MYSQL服务
    7. 如果执行失败可以使用命令 vi /var/log/mysqld.log 查看日志,注意启动前将 firewall 和 selinux 都关闭
    8. 检查MYSQL运行状态:service mysqld status
    9. MYSQL5.7版本开始安装后会自动为root用户生成一个随机的密码,如果是rpm包安装的,则默认存放在文件/var/log/mysqld.log中,使用命令vi /var/log/mysqld.log 查看该日志文件然后通过命令:grep 'temporary password' /var/log/mysqld.log 查看密码,效果如下图
    10. 使用命令:mysql -u root -p 然后回车,要求输入密码后登录MYSQL
    11. 登录后第一件事情就是要修改root的登录密码,系统默认密码要有一定的复杂度,如果要取消该复杂度要求需要执行下面两个命令: set global validate_password_policy=0;set global validate_password_length=1; 然后使用命令:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123'; 修改密码 上面的 root123 就是修改后的密码
    12. 授权其他机器登录:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;FLUSH PRIVILEGES;
    13. 在2019年7月15日 14:11:39 测试上面步骤通过
  • 访问不通的解决方法:
  1. 先检查3306端口是否对外开放 安装mysql01
  2. 确保客户端用户有访问权限:grant all on . to user_name@'%' identified by 'user_password'; 上面的 user_name 使用 root 后面的 user_password 填写密码,那么实际执行的指令是: grant all on . to root@'%' identified by '!Xdf123456';
  3. 重启MYSQL服务
  4. 停止MYSQL服务的命令是:sudo service mysql restart
  • 打开文件最大数量: linux 默认最大打开1024个文件,并且linux 是个文件系统,一切皆文件,当访问 mysql 的进程过多导致打开的文件数量达到了上限就会出现访问不同或者访问中断的问题,那么需要修改文件:/etc/security/limits.conf

另一个在线安装MYSQL

查看mysql安装路径

whereis mysql 查找 my.cnf :sudo find /etc -name \my.cnf 一般在 /etc/my.cnf 守护进程文件在:/usr/bin/systemd/system 下的 mysqld.service

启动MYSQL守护进程失败

找到文件 my.cnf 看其中的设置 datadir = /var/lib/mysql,则将该目录 /var/lib/mysql 下的文件全部清空重新初始化

卸载MYSQL

  1. 查看安装了什么
rpm -qa |grep -i mysql

安装mysql02 那么对应的使用下面的命令卸载

yum remove mysql-community-common-5.7.31-1.el7.x86_64
yum remove mysql-community-client-5.7.31-1.el7.x86_64
yum remove mysql-community-server-5.7.31-1.el7.x86_64
yum remove mysql57-community-release-el7-8.noarch
yum remove mysql-community-libs-5.7.31-1.el7.x86_64
yum remove mysql-community-libs-compat-5.7.31-1.el7.x86_64
  1. 再次使用下面命令查看是否卸载完毕
rpm -qa |grep -i mysql
  1. 使用下面命令查找没有被删除的MYSQL目录,并将这些目录都删除
find / -name mysql
  1. 删除配置文件
rm -rf /etc/my.cnf
  1. 删除日志文件,否则无法生成临时密码
rm -rf /var/log/mysqld.log

第三种安装方法

概述

docker 不适合做数据库,那么还是乖乖的在操作系统中安装 mysql

安装步骤

  1. 从官网下载 repo 配置文件 - CentOS7 的 yum 中默认没有 mysql
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  1. 安装 repo
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
  1. 执行完成后会在 /etc/yum.repos.d/ 目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
  2. 切换到 /etc/yum.repos.d/ 后执行命令
yum install mysql-server
  1. 安装完毕后会自动清空上面下来来的5个后缀是 rpm 的安装包,如果想要保留,要在安装完毕之前拷贝到别的地方
  2. 启动 mysql - systemctl start mysqld
  3. 查看 root 的默认密码 - grep 'temporary password' /var/log/mysqld.log
  4. 登录 - mysql -u root -p 回车后输入前一步查看到的默认密码
  5. 在执行任何操作之前 mysql 要求修改 root 密码 ,并且要求复杂度,要求大小写都有并且有数字
  6. 调整密码策略 - 如果不想设置太复杂的密码
    • 使用命令 SHOW VARIABLES LIKE 'validate_password%';  查看 validate_password_policy 是 MEDIUM
    • 使用命令 set global validate_password_policy=LOW; 将策略设置为低
    • 然后通过 ALTER USER 'root'@'localhost' IDENTIFIED BY 'chanchaw'; 设置简单密码
  7. 远程连接 默认安装后不允许远程连接,只有本机可以登录,那么需要使用 mysql -u root -p 登录后使用 update user set Host='%' where User='root'; 修改允许任何主机使用用户 root 登录 mysql ,然后还要使用 flush privileges; 刷新下再在远端进行连接。
  8. 修改默认字符集 默认是拉丁字符集,在登录 mysql 后使用 \s 查看字符集,需要修改为 utf8 使用命令 vi /etc/my.cnf  在 [mysqld] 下追加:
character_set_server=utf8 
init_connect='SET NAMES utf8'
# 通过 mysql -u root -p 登录 mysql 控制台后执行下面两个命令(赋予权限)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;  
FLUSH PRIVILEGES;

修改默认端口号

通过下面命令打开配置文件

vi /etc/my.cnf

在 [mysqld] 下创建 port = 16033

2022年12月20日 GPG keys 失败

概述

今日安装 mysql5.7(在 CentOS7.9系统中),安装后提示下图: 安装mysql03 意思是官方更新了 GPG keys,以后不可使用私有的 keys 了。官方关于本问题的地址是:https://dev.mysql.com/doc/refman/8.0/en/checking-rpm-signature.htmlopen in new window 按照要求可通过 rpm 导入

$> rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

但是我在天翼云网筒服务器上执行时提示:

error: https://repo.mysql.com/RPM-GPG-KEY-mysql-2022: import read failed(2).

说明不可直接通过 rpm 导入,可以通过。可先下载再导入:

# 执行下面命令先下载
wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 再执行下面命令导入已经下载好的文件。接下来就可以安装 mysql 了:yum install mysql-server -y
rpm --import RPM-GPG-KEY-mysql-2022