夜听城嚣 夜听城嚣
首页
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 前端基建与架构
  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
  • 项目实践
  • 抓包工具
  • 知识管理
  • 工程部署
  • 团队规范
bug知多少
  • 少年歌行
  • 青年随笔
  • 文海泛舟
  • 此事躬行

    • 项目各工种是如何协作的
    • TBA课程学习
收藏

dwfrost

前端界的小学生
首页
  • 学习笔记

    • 《JavaScript高级程序设计》
    • 前端基建与架构
  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
  • 项目实践
  • 抓包工具
  • 知识管理
  • 工程部署
  • 团队规范
bug知多少
  • 少年歌行
  • 青年随笔
  • 文海泛舟
  • 此事躬行

    • 项目各工种是如何协作的
    • TBA课程学习
收藏
  • 读书笔记

  • 专题分享

    • Git入门与开发
    • 前端面试题汇总
    • HTML和CSS知识点
    • 前端路由原理及实践
    • 性能优化之虚拟列表
    • mysql教程
      • python项目实践
      • 图片懒加载原理
      • WallectConnect开发心得
      • 企微机器人
    • 项目实践

    • 框架应用

    • 前端一览
    • 专题分享
    frost
    2022-12-08

    mysql教程

    # 安装

    安装步骤参考这篇教程 (opens new window)。

    安装环境:centos系统。

    # 先安装yum
    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
    rpm -ivh mysql-community-release-el7-5.noarch.rpm
    yum update
    yum install mysql-server
    
    # 权限设置:
    chown -R mysql:mysql /var/lib/mysql/
    
    # 初始化 MySQL:
    mysqld --initialize
    # 运行后,报错,不过不影响。继续往下
    # [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    
    # 启动 MySQL:
    systemctl start mysqld
    
    # 查看 MySQL 运行状态:
    systemctl status mysqld
    
    # 验证 MySQL 安装
    mysqladmin --version
    
    # 检查mysql是否启动
    ps -ef | grep mysqld
    # 已启动将会输出进程列表
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

    # 使用

    # 简单执行

    # 直接连接
    mysql
    # 显示数据库
    mysql> SHOW DATABASES;
    # ctrl+c或者输入exit退出mysql交互命令行
    
    # 默认root密码为空,设置root密码
    mysqladmin -u root password "new_password";
    # 修改密码
    mysqladmin -u用户名 -p旧密码 password 新密码
    # 如果在mysql交互命令行,也可以如下修改密码
    mysql> set password for 用户名@localhost = password(‘新密码’);
    
    # 登录mysql
    mysql -u root -p
    # 查看root用户的配置
    mysql> select host,user from user where user = 'root';
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    # 用户设置

    # 新增用户
    mysql> INSERT INTO user 
        ->           (host, user, password, 
        ->            select_priv, insert_priv, update_priv) 
        ->            VALUES ('localhost', 'guest', 
        ->            PASSWORD('guest123'), 'Y', 'Y', 'Y');
    ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
    
    1
    2
    3
    4
    5
    6

    可以看到有报错,原因是严格模式禁止通过insert 这种形式直接修改mysql库中的user表进行添加新用户。

    找到mysql的配置文件

    sudo find / -name my.cnf
    
    1

    发现是严格模式:

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    
    1

    不过这里就不动了,改用其他方式。

    1. GRANT
    GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']
    
    1
    • priv_type 参数表示新用户的权限;
    • database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
    • user 参数指定新用户的账号,由用户名和主机名构成;
    • IDENTIFIED BY 关键字用来设置密码;
    • password 参数表示新用户的密码。

    举例1:

    mysql> GRANT SELECT ON*.* TO 'test@localhost' IDENTIFIED BY '123456';
    Query OK, 0 rows affected (0.00 sec)
    
    1
    2

    该用户只能操作SELECT,注意:单引号不能省略。

    例2:

    mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
        -> ON TUTORIALS.*
        -> TO 'zara'@'localhost'
        -> IDENTIFIED BY 'zara123';
    
    1
    2
    3
    4

    给指定数据库TUTORIALS添加用户 zara ,密码为 zara123 。

    • 设置拥有全部权限的的admin用户:
    GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
    
    1

    连接的主机设置为“%”,代表任意的 ip 可以连接。

    MySQL创建用户 (opens new window)

    1. CREATE
    CREATE USER 'testuser1'@'localhost';
    
    1
    # 查看权限
    SHOW GRANTS FOR 'username'@'hostname';
    
    1

    其中,username 表示用户名,hostname 表示主机名或主机 IP。

    # 查表

    # 切换到 mysql 数据库
    mysql> use mysql
    # 查看有哪些表
    mysql> show tables;
    
    1
    2
    3
    4

    # 可视化操作

    使用navicat进行可视化操作。

    注意root一般不允许远程,所以要创建用户进行连接。详见上一节的新增用户。

    tip:如果连接不上,可能是以下情况:

    • 主机设置只能本地访问。
      • netstat -apn|grep 3306 ,如果显示的是127.0.0.1:3306,说明只能本机启动,要去mysql配置文件(my.cnf)修改。
      • 重启 mysql 服务 sudo service mysql restart
    • 防火墙
      • mysql默认是3306端口,登录腾讯云的防火墙,果然没有打开3306端口,开启即可。

    Navicat for mysql破解版安装 (opens new window)

    MySQL可视化软件(Navicat)部署与使用 (opens new window)

    如何远程连接MySQL数据库 (opens new window)

    # 参考文章

    mysql数据库密码设置 (opens new window)

    上次更新: 2023/01/29, 18:04:46
    性能优化之虚拟列表
    python项目实践

    ← 性能优化之虚拟列表 python项目实践→

    最近更新
    01
    提交代码时修改commit消息
    04-09
    02
    如何快速定位bug
    02-20
    03
    云端web项目开发踩坑
    08-25
    更多文章>
    Theme by Vdoing | Copyright © 2021-2025 dwfrost | 粤ICP备2021118995号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式
    ×