在Linux上装mysql8.0所遇到的坑,以及开启mysql自动启动

本来以为mysql装起来分分钟搞定,结果搞了半天,一个个error还不带重样的.

看网上的Linux转mysql也是步骤并不简单, 而且mysql现在已经出到8.0.12版本了, 安装也和之前的有些不一样

前面的下载tar包这里省略不表,在linux解压的时候就遇到了第一个坑

1.xxxxx.tar.xz在解压的时候出问题

xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用tar -xvf xxx.tar来解包。

2.initialize specified but the data directory has files in it. Aborting初始化失败

这里就比较复杂,首先看一下my.cfg

vi /etc/my.cnf

这里把basedir(mysql的安装路径),datadir(数据库路径)配置好,比如:(这里需要先自己手动创建data的文件夹)

[mysqld]
datadir=/usr/local/database/mysql/mysql-8.0.12/data
basedir=/usr/local/database/mysql/mysql-8.0.12
character-set-server=utf8
port=3306

# socket=/var/lib/mysql/mysql.sock

# log-error=error.log


# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

再尝试初始化

cd /usr/local/database/mysql/mysql-8.0.12/
./bin/mysqld --initialize 
3.mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

这里也看到网上各种解决方法,但是自己觉得最直接的就是给他创建一个log文件夹

mkdir /var/log/mariadb 
touch /var/log/mariadb/mariadb.log 
chown -R mysql:mysql /var/log/mariadb/
4.mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

这个结合上面我们的/etc/my.cnf,

第一种方法:
关于socket这一行,如果不做集群的话,把这行注释掉再试试就可以了

第二种方法:
我们看一下/var/lib,没有mysql文件夹

alternatives  chrony  dhclient  initramfs  machines  NetworkManager  plymouth  postfix  rpm-state  stateless  tuned
authconfig    dbus    games     logrotate  misc      os-prober       polkit-1  rpm      rsyslog    systemd    yum

第一步,缺什么创建什么

mkdir   /var/lib/mysql

第二部,赋予权限

chmod 777  /var/lib/mysql
5.The server quit without updating PID file

这里也是有很多原因,大多数原因还是权限的问题

红色框框中的路径拷贝

# chown -R mysql.mysql 拷贝的文件夹路径
chown -R mysql:mysql /usr/local/database/mysql/mysql-8.0.12/data

finally!!!

但是这里只是算是迈出了第一步,要想真正使用mysql,后面还有设置需要做

6.添加到系统服务自动启动

cd 到mysql安装文件夹目录,设置权限

cp -a ./support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld    

chkconfig --add mysqld

可以检查一下服务是否生效

chkconfig  --list

这里写图片描述

7.配置全局环境变量
vi /etc/profile

export MYSQL_HOME=/usr/local/database/mysql/mysql-8.0.12

PATH=/data/mysql/bin:/data/mysql/lib:$PATH

保存退出,使环境变量生效

source /etc/profile
8. 启动mysql服务,关闭和重启
service mysql start
service mysql stop
service mysql restart
  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
LINUX重启MYSQL的命令 . 分类: Linux 2010-06-25 10:21 6367人阅读 评论(0) 收藏 举报 如何启动/停止/重启MySQL 一、启动方式 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、停止 1、使用 service 启动:service mysqld stop 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3、 mysqladmin shutdown 三、重启 1、使用 service 启动:service mysqld restart 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart 提问 编辑摘要 如何启动/停止/重启MySQL 一、启动方式 1、使用 service 启动:service mysqld start 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start 3、使用 safe_mysqld 启动:safe_mysqld& 二、停止 1、使用 service 启动:service mysqld stop 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop 3、 mysqladmin shutdown 三、重启 1、使用 service 启动:service mysqld restart 2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart 刚开始学 mysql时都是用redhat自带的。启动是什么 /rc.d/init.d/ start 这很简单,但是后来越学越多,系统自带的 mysql,有的是版本太低,有的是与 自己想要装的web服务需要的低版本的mysql 后来自己学着以tar的方式安装 mysql,我的mysql装在/usr/local/mysql目录下启 动碰到过很多问题。最常见的是: ERROR 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (111) 解决办法: [root@test mysql]# /usr/local/mysql/bin/mysqladmin -u root / > -S /var/lib/mysql/mysql.sock password 'your.passwd' 或者做个连接 ln -s /var/lib/mysql/mysql.sock /tmp 其实提示找不到 /tmp/mysql.sock有时也并不是/tmp目录下没这个文件,是启动 命令不对,我碰到过 常见的几种启动方式,自己也不是记得很清楚,如果你确定tmp下有mysql.sock这 个文件不妨试试另外的几个命令 /usr/local/mysql/bin/mysql -u root -p /usr/local/mysql/bin/mysqld --user=mysql& /usr/local/mysql/bin/mysqld --user=root& /usr/local/mysql/bin/mysqld_safe --user=root& /usr/local/mysql/bin/mysqld_safe --user=mysql& /usr/local/mysql/bin/safe_mysqld--uer=root&(注意 safe_mysqld与mysqld_safe是不同的,&表示mysql在后台运行)我的就会报错了 STOPPING server from pid file /usr/local/mysql/data/localhost.localdomain.pid 060304 11:46:21 mysqld ended 这是权限问题,我的mysql目录属于root用户,也属于root群组,改用 mysqld_safe启动就没问题了, 大家只要注意这几个 mysql,safe_mysqld,mysqld_safe,mysqld,mysqladmin.多试 几次 其实有时mysql已经正常启动了,查看mysql是否启动命令 ps -aux | grep mysqld 会看到如下类似内容 mysql 6394 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ mysql 6395 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ mysql 6396 0.0 1.5 10528 992 pts/3 S 16:16 0:00 /usr/local/mysql/ root 6422 0.0 1.1 2408 732 pts/3 S 16:20 0:00 grep mysql 查看mysql是否在监听端口命令 netstat -tl | grep mysql 会看到如下类似内容 tcp 0 0 *:mysql *:* LISTEN
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值