当前位置: 首页 > article >正文

Ubuntu系统上mysql服务部署

前段时间搞了一个mysql服务端的部署,在Ubuntu系统上,中间也踩了许多坑,特此记录下。

下载

官网:MySQL :: MySQL Community Downloads

这个里面有不同系统的安装包,根据自己的系统选择,我选了

  • MySQL Community Servericon-default.png?t=O83Ahttps://dev.mysql.com/downloads/mysql/

部署

  1. 官网下载tar.xz包;
  2. 解压到/opt目录,重命名为mysql-8.1;
  3. 进入mysql-8.1目录,创建data目录;
  4. 将mysql-8.1目录的用户和组改为mysql,权限都设为777:
    groupadd mysql;
    useradd -r -g mysql mysql;
    chown -R mysql:mysql mysql-8.1;
  5. 创建my.cnf文件,放置在哪都可以,一般是/etc/my.cnf,内容如下:
    [mysqld]
    bind-address=0.0.0.0
    port=3306
    user=mysql
    basedir=/opt/mysql/mysql-8.1
    datadir=/opt/mysql/mysql-8.1/data
    socket=/tmp/mysql.sock
    log-error=/opt/mysql/mysql-8.1/data/mysql.err
    pid-file=/opt/mysql/mysql-8.1/data/mysql.pid
    max_connections=10000
    max_user_connections=2000
    wait_timeout=200
    character_set_server=utf8mb4
    symbolic-links=0
    explicit_defaults_for_timestamp=true
    lower_case_table_names=0
    # 注意:/etc/my.cnf 中的lower_case_table_names代表是否区分大小写,写1会在启动mysql服务时报错,所以改成了0;
  6. 进入/opt/mysql/mysql-8.1/bin目录,执行数据库初始化命令:
    sudo ./mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql/mysql-8.1 --datadir=/opt/mysql/mysql-8.1/data --user=mysql --initialize
    这个命令第一次执行需要2min,它会在data目录中生成很多文件。
    --user指定以哪个用户启动;
    初始化密码在/opt/mysql/mysql-8.1/data/mysql.err查看;
  7. 启动mysql服务
    将/opt/mysql/mysql-8.1/support-files/mysql.server的basedir和datadir字段赋值:
    basedir=/opt/mysql/mysql-8.1
    datadir=/opt/mysql/mysql-8.1/data
    尝试启动 sudo ./mysql.server start
    # 启动可能报错,具体报错信息在/opt/mysql/mysql-8.1/data/mysql.pid查看;
    报 my_print_defaults:未找到命令错误:
    sudo ln -s /opt/mysql/mysql-8.1/bin/my_print_defaults /usr/bin;
    启动成功后,就可先停掉,通过步骤8正式设置启动命令。
  8. 将启动进程添加到系统进程中
    cp mysql.server /etc/init.d/mysqld
    ln -s /etc/init.d/mysqld /etc/init.d/mysql
    systemctl enable mysql  --设置开机自启动
  9. mysql服务启动成功后,进入/opt/mysql/mysql-8.1/bin目录,执行./mysql -uroot -p,输入初始密码进入数据库,然后通过alter user 'root'@'localhost' identified by 'new_passwd'; 语句设置新密码。

以上就完成mysql服务端的部署,如果需要远程客户端访问该服务器,还需要进行一些配置,可参考如何开启MySQL远程访问权限允许远程连接? - 流云1 - 博客园 。


http://www.kler.cn/a/429984.html

相关文章:

  • Flink-CDC 全面解析
  • Apache Sedona和Spark将geojson瓦片化例子
  • Linux之线程池与单例模式
  • MySQL数据导出导入
  • 【Maui】动态菜单实现(绑定数据视图)
  • IT面试求职系列主题-人工智能(一)
  • C#实现一个HttpClient集成通义千问-流式输出内容提取
  • 鸿蒙特色实战2
  • 商业银行基于容器云的分布式数据库架构设计与创新实践
  • JavaScript 数组的高级用法与最佳实践
  • 如何解决 java.nio.charset.CoderMalfunctionError: 编码器故障错误问题?亲测有效的解决方法!
  • 分布式搜索引擎之elasticsearch基本使用1
  • Java快速分组技术解析
  • 1.1 Beginner Level学习之“编写简单的发布服务器和订阅服务器”(第十二节)
  • 逆波兰算法详解及应用(计算数学表达式)
  • 自动驾驶领域常用的软件与工具
  • 使用Docker安装Qdrant向量数据库
  • 013-SpringBoot 定义优雅的全局异常处理方式
  • ubuntu20.04安装anygrasp_sdk
  • 个人IP建设:简易指南
  • sql常见50道查询练习题
  • 【DataWorks最佳实践】权限及安全-风险识别规则响应案例
  • 手机端常见 BUG 深度剖析:成因、表现与解决之道
  • Android 屏蔽安全模式+去掉系统安全模式(SAFE MODE)
  • Orleans使用KafkaStream
  • SQL,根据数据的时间跨度进行不同粒度的统计