Mysql-CentOS

本文最后更新于:2020年9月27日 晚上

环境

  • Centos7.4 腾讯云服务器

安装

一、添加yum源

  1. mysql的官网下载yum repo配置文件

    1
    wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  2. 安装repo

    1
    rpm -ivh mysql57-community-release-el7-9.noarch.rpm

    二、安装

    原生mysql安装

  3. yum安装

    1
    yum install mysql-server
  4. 启动mysql

    1
    systemctl start mysqld 
  5. 临时密码获取

    1
    grep 'temporary password' /var/log/mysqld.log
  6. 重启mysql

    1
    systemctl start mysqld
  7. 临时登录

    1
    mysql -u root -p

    然后输入密码(刚刚获取的临时密码)

  8. 修改root密码

    1
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新的密码'; 

    设置一个大小写字母,特殊字符,数字都有的,比较长的密码即可

Docker安装

首先你需要有Docker环境

Post not found: CentOS-Docker
  1. 拉取镜像

    1
    docker pull mysql 5.7

    你可以指定版本号,也可以不指定(默认最新版)
    拉取完毕后看看是否有了镜像

    1
    docker images
  2. 创建容器

    1
    docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=起始mysql-root用户密码 -d mysql:5.7
    • –name : 容器名,此处命名为mysql
    • -e:配置信息,此处配置了mysqlroot用户登录密码
    • -p端口映射:此处主机 3307端口 到 容器的3306端口
    • -d:镜像名,如果没有指定版本,就不用填写版本信息
  3. 建立目录映射(不建议建立)

    1
    2
    3
    4
    5
    6
    duso docker run -p 3306:3306 --name mysql \
    -v /usr/local/docker/mysql/conf:/etc/mysql \
    -v /usr/local/docker/mysql/logs:/var/log/mysql \
    -v /usr/local/docker/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -d mysql:5.7
    • -v:主机和容器的目录映射关系,”:”前为主机目录,之后为容器目录
  4. 查看容器是否已经正常运行

    1
    docker container ls

    可以看到容器ID,容器的源镜像,启动命令,创建时间,状态,端口映射信息,容器名字

  5. 连接容器,输入用户/密码,进入mysql

    1
    2
    docker exec -it mysql bash
    mysql -u用户名 -p密码

    配置mysql

    开启远程控制

  6. 登录数据库

    1
    mysql -u root -p
  7. 进去mysql数据库

    1
    use mysql;
  8. 创建用户(可选操作)

    1
    create user '用户名'@'用户的HOST' identified by '密码';

    如果想要任意客户端都可以访问的话,给HOST设置一个%即可,也可以输入ip
    如果选择创建用户的话后面的步骤就可以跳过了

  9. 查看user表中的数据

    1
    select Host, User from user;

    观察显示的数据Host代表许可ip,%代表任意

  10. 修改访问许可

    1
    update user set Host='%' where User='root';  

    这里是将root用户修改为任意ip都可以访问

  11. 刷新权限

    1
    flush privileges;

    Navicat不支持MySQL新版本的默认加密方式caching_sha2_password导致报错

  12. 查看mysql用户信息

    1
    select host, user, plugin from mysql.user;


    可以查看到,其加密方式为caching_sha2_password

  13. 修改加密方式

    1
    ALTER USER '用户名'@'用户的Host' IDENTIFIED WITH mysql_native_password BY '用户的密码';

    caching_sha2_password这种加密方式Navicat不支持
    将它改为Navicat支持的mysql_native_password

常用命令

授权

  • 用户对某个数据库内的所有表 增删改查权限
    1
    grant select, insert, update, delete on 数据库名.* to 用户名@'用户Host'  

其他

mysql服务

1
2
3
4
5
6
systemctl start mysqld  # 启动mysql服务
systemctl stop mysqld # 关闭mysql服务
systemctl restart mysqld # 重启 mysql服务
systemctl status mysqld # 查看mysql服务运行状态
systemctl enable mysqld # 开机启动mysql
systemctl disable mysqld # 关闭开机启动mysql

查看mysql版本

1
select version();