mysql安装与使用

mysql安装与使用

安装指定版本的mysql

sh 复制代码
# 获得deb包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
# 安装deb包(中间选择5.7)
sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb
# 更新apt仓库缓存
sudo apt-get update
# 如果更新报错,缺少key,则运行下列语句,替换对应缺少的key
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
# 更新后查看当前mysql的可安装版本
sudo apt-cache policy mysql-server
# 安装 mysql5.7(安装过程需要配置输入 mysql root 的password)
sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*

# 如果报错,先取消上面的安装
sudo apt --fix-broken install
# 然后安装对应的依赖
# 安装libmecab2
sudo apt install libmecab2
# 安装libaio1
sudo apt install libaio1
# 安装mysql-community-client
sudo apt install mysql-community-client=5.7*
# 再次安装 mysql 5.7
sudo apt install -f mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7*

安装mysql 8.0

sh 复制代码
# 安装MySQL 8 只需这步(ubuntu22.04默认php版本为8.0)
sudo apt install mysql-server -y
# 检查状态
sudo systemctl status mysql

配置mysql

  • 查看初始密码位置:

    bash 复制代码
    sudo cat /etc/mysql/debian.cnf
  • 查找配置文件:

    bash 复制代码
    sudo find / -name my.cnf
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
  • 配置更改:

    ini 复制代码
    [mysqld]
    #port=3306
    # 服务端使用的字符集默认为utf8
    character-set-server=utf8
    # 时区配置
    default-time-zone = '+08:00'
    # 认证方式
    default_authentication_plugin=mysql_native_password
    # 连接地址
    bind-address = 0.0.0.0
    # 解决group_concant报错
    sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    
    [client]
    default-character-set=utf8
    # 客户端保存密码
    user = backup_user
    password = password
    host = 127.0.0.1
    # 容器中配置
    #host = mysql-8.0

4. mysql常用操作

  • 连接数据库:

    bash 复制代码
    # 复制sql文件到容器(使用docker部署)
    sudo docker cp my_db.sql mysql-8.0:/
    # 进入数据库容器(使用docker部署)
    sudo docker exec -it mysql-8.0 bash
    # 连接数据库
    mysql -u root -p
  • 创建并导入数据库:

    sql 复制代码
    -- 创建数据库
    create database my_db default character set utf8 collate utf8_general_ci;
    -- 选择数据库
    use my_db;
    -- 导入sql文件
    source my_db.sql;
  • 分配指定数据库权限:

    sql 复制代码
    -- 创建数据库用户
    CREATE USER 'my_db_user'@'%' IDENTIFIED BY 'strong_password';
    -- 分配用户指定数据库权限
    grant all privileges on my_db.* to 'my_db_user'@'%';
    -- 刷新权限
    flush privileges;
  • 分配备份数据库权限:

    sql 复制代码
    -- 创建专用备份账号
    CREATE USER 'backup_user'@'%' IDENTIFIED BY 'strong_password';
    -- 授予基础权限
    GRANT SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, PROCESS ON *.* TO 'backup_user'@'%';
    -- 如果数据库含事件调度
    GRANT EVENT ON my_db.* TO 'backup_user'@'%';
    -- 刷新权限
    FLUSH PRIVILEGES;
  • 导出数据库:

    bash 复制代码
    # 导出指定数据库
    sudo mysqldump -uroot -p my_db > ~/projectname.sql
    # 导出容器中指定数据库
    sudo docker exec mysql-8.0 mysqldump -uroot -p my_db > ~/my_db.sql
    # 导出所有数据库
    sudo mysqldump -uroot -p --all-databases > ~/all-databases.sql
    # 导出容器中所有数据库
    sudo docker exec mysql-8.0 mysqldump -uroot -p  --all-databases > ~/all-databases.sql
相关推荐
姜行运1 小时前
数据结构【二叉搜索树(BST)】
android·数据结构·c++·c#
gadiaola4 小时前
MySQL从入门到精通(三):MySQL数据类型、SQL语言—DDL
数据库·sql·mysql·database
万能程序员-传康Kk8 小时前
中国邮政物流管理系统(Django+mysql)
python·mysql·django
JhonKI9 小时前
【MySQL】存储引擎 - CSV详解
android·数据库·mysql
开开心心_Every9 小时前
手机隐私数据彻底删除工具:回收或弃用手机前防数据恢复
android·windows·python·搜索引擎·智能手机·pdf·音视频
闪电麦坤959 小时前
SQL:MySQL函数:字符串函数
数据库·mysql
大G哥9 小时前
Kotlin Lambda语法错误修复
android·java·开发语言·kotlin
may_一一13 小时前
docker操作镜像-以mysql为例
adb
鸿蒙布道师13 小时前
鸿蒙NEXT开发动画案例2
android·ios·华为·harmonyos·鸿蒙系统·arkui·huawei
androidwork13 小时前
Kotlin Android工程Mock数据方法总结
android·开发语言·kotlin