码迷,mamicode.com
首页 > 数据库 > 详细

服务器安装部署-01-MySQL

时间:2021-04-01 13:30:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:bin   dir   for   fail   etc   secure   mod   after   variable   

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

标签:bin   dir   for   fail   etc   secure   mod   after   variable   

原文地址:https://www.cnblogs.com/primabrucexu/p/14604476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!