1 MySQL

1.1 安装

在root用户权限下

# 创建mysql用户和用户组,同时禁止登陆
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql # tar解压mysql压缩包,同时把他移到你向安装的位置
shell> tar -xvf mysql.tar.xz
shell> tar -zxvf mysql.tar.gz
shell> mv [mysql文件夹] [目的地]
shell> cd [目的地] # 在当前文件夹下创建数据文件夹和日志文件夹 PS.这是我个人的习惯
shell> mkdir data
shell> mkdir log # 更改当前文件夹下的用户
shell> chown -R mysql ./
shell> chgrp -R mysql ./ # 初始化mysql,这里会生成一个随机密码,可以记下来。如果忘记了,那就只能再来一次。
# 如果不想有随机密码生成,用这个选项 --initialize-insecure,不过这个选项不会在第一次登陆的时候提示你去改密码
shell> ./bin/mysql --initialize --user=mysql --basedir=[mysql目录] --datadir[data目录] # 检查是否安装成功,进行启动验证
shell> ./support-files/mysql.server start # 启动之后,登陆mysql,然后修改root密码
shell> ./bin/mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; # 允许root账户远程登陆
mysql> use mysql;
mysql> update user set host='%' where user='root';

1.2 错误排查

遇到错误不要怕,先看看日志怎么说

1)找不到日志/日志文件夹为空

解决

检查my.cnf文件中的 log-error配置,看看这里配置的文件夹和文件是不是不存在。如果存在的话检查权限

原因

mysql运行使用的用户是mysql,这个用户没有权限创建文件和文件夹

2)can‘t connect local mysql server through socket '/xxx/xxx/mysql.sock'

这错误一般在连接的时候出现

解决方案

检查 my.cnfclient条目下关于socket的配置,如果文件夹不存在的话就给他创建好,然后改变用户和用户组。

万能方案:都丢到mysql目录下

3)couldn't create xxx file [目录]

这个错误一般在初始化mysql的时候出现

解决方案

检查目录是否存在以及目录所属用户和用户组

4)不能通过systemctl管理mysql

解决方案

shell> cd /usr/lib/systemd/system
# 文件名随你定,但是要用“.service”结尾
shell> touch mysqld.service
shell> chmod 644 mysqld.service

把下面内容复制进去,文件来自https://dev.mysql.com/doc/mysql-secure-deployment-guide/8.0/en/secure-deployment-post-install.html

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target [Install]
WantedBy=multi-user.target [Service]
User=mysql
Group=mysql # Have mysqld write its state to the systemd notify socket
Type=notify # Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0 # Start main service
# 这里要记得改成你的mysqld的路径
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS # Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit
LimitNOFILE = 10000 Restart=on-failure RestartPreventExitStatus=1 # Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1 PrivateTmp=false

服务器安装部署-01-MySQL的更多相关文章

  1. 01 . Mysql简介及部署

    Mysql数据库简介 什么是数据? ​ 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据是信息的表现形式和载体,可以是符号,文字,数字,语音,图 ...

  2. 定期从Docker上部署的MySQL备份数据

    前段时间公司停电,正巧赶上周一领导要开会要过一遍项目,然而项目所依赖的MySQL数据库是直接部署在宿主机,且因为各人部署方式不同的原因,花了很久才在开会前启动起来.于是开完会后,我第一件事就是把原先依 ...

  3. 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】

    要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...

  4. Hive的安装与部署(MySQL作为元数据库)

    Hive的安装与部署(MySQL作为元数据) (开始之前确保Hadoop环境已经启动,确保Linux下的MySQL已经安装好) 1.     安装Hive (1)下载安装包 可从apache上下载hi ...

  5. 01 mysql 基础一 (进阶)

    mysql基础一 1.认识mysql与创建用户 01 Mysql简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQLAB公司开发,目前属于Oracle公司. MySQL是一种关联数据库 ...

  6. (转)Kubernetes部署WordPress+MySQL

    转:http://www.showerlee.com/archives/2336 这部分我们结合之前的k8s知识点给大家展示如何使用kubernetes部署wordpress+MySQL, 并利用NF ...

  7. docker部署带mysql数据库连接的.netcore程序

    docker部署带mysql数据库连接的程序和部署普通的程序完全一致 数据库可以是物理机删的mysql,同时也可以是docker里的mysql. 如果是docker中的mysql,配置连接字符串和物理 ...

  8. 数据库01 /Mysql初识、基本指令、数据库密码相关、创建用户及授权

    数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 2. 数据库管理系统/DBMS ...

  9. 容器化 | 在 K8s 上部署 RadonDB MySQL Operator 和集群

    作者:程润科 数据库研发工程师 编辑:张莉梅 高级文档工程师 视频:钱芬 高级测试工程师 本文将演示在 Kubernetes 上部署 RadonDB MySQL Kubernetes 2.X(Oper ...

  10. 01 Mysql数据库初识

    一.数据库概述 1.什么是数据库? 什么是数据库呢? 先来看看百度怎么说的 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓“ ...

随机推荐

  1. js 如何打印出 prototype 的查找路径

    js 如何打印出 prototype 的查找路径 Function function func (name) { this.name = name || `default name`; } f = n ...

  2. Angular Learning Paths

    Angular Learning Paths Angular Expert refs https://app.pluralsight.com/search/?q=angular xgqfrms 201 ...

  3. yarn & macOS & upgrade

    yarn & macOS https://yarnpkg.com/zh-Hans/docs/install#mac-stable $ brew install yarn $ brew upgr ...

  4. CORS OPTIONS

    CORS OPTIONS A CORS preflight request is a CORS request that checks to see if the CORS protocol is u ...

  5. wireshark 获取指定进程id的数据

    >netstat -aon | findstr 11380 TCP 191.127.1.7:57936 29.225.107.216:3734 ESTABLISHED 11380 过滤器: tc ...

  6. NGK内存将为全球投资者创造新的财富增长机会

    2020年,随着BTC的持续上涨带动了整个区块链市场的持续加温,同时金融市场也对金融体制做出了改变,关于金融和区块链的结合越来越被人们所认可,在此基础上,DeFi行业借此迎来了快速发展,据不完全统计, ...

  7. JUC并发集合类CopyOnWriteList

    CopyOnWriteList简介 ArrayList是线程不安全的,于是JDK新增加了一个线程并发安全的List--CopyOnWriteList,中心思想就是copy-on-write,简单来说是 ...

  8. 线上CPU飙升100%问题排查

    本文转载自线上CPU飙升100%问题排查 引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考 ...

  9. RabbitMq手动确认时的重试机制

    本文转载自RabbitMq手动确认时的重试机制 消息手动确认模式的几点说明 监听的方法内部必须使用channel进行消息确认,包括消费成功或消费失败 如果不手动确认,也不抛出异常,消息不会自动重新推送 ...

  10. java自学第4期——:Scanner类、匿名对象介绍、Random类、ArrayList集合、标准类格式、String类、static静态、Arrays工具类、Math类(1)

    一.Scanner类 1.api简介: 应用程序编程接口 2.Scanner类: 作用:获取键盘输入的数据 位置: java.util.Scanner. 使用:使用成员方法nextInt() 和 ne ...