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
相关推荐
dlhto1 小时前
Oracle Linux 9 的 MySQL 8.0 完整安装与远程连接配置
linux·mysql·oracle
TimeFine1 小时前
Android WebView暗夜模式适配
android
studyForMokey1 小时前
【Android Activity】生命周期深入理解
android·kotlin
浅影歌年2 小时前
Android 嵌入h5顶部状态栏空白
android
送秋三十五2 小时前
5分钟读懂MySQL+Redis双写一致性实现流程
数据库·redis·mysql
阿波罗尼亚3 小时前
查询修正字段sql记录
数据库·sql·mysql
Hello.Reader4 小时前
用 Flink CDC 将 MySQL 实时同步到 Doris
大数据·mysql·flink
来来走走4 小时前
kotlin学习 lambda编程
android·学习·kotlin
无知的前端4 小时前
一文精通-Kotlin中双冒号:: 语法使用
android·kotlin
信仰_2739932434 小时前
Mysql中MVCC的流程
数据库·mysql