Linux安装mysql

Linux中卸载mysql数据库(第一次安装请略过) 检查是否安装mysql 使用一下命令查看当前安装mysql的情况,是否安装了mysql

rpm -qa|grep -i mysql

? 显示之前安装了:
MySQL-client-5.5.25a-1.rhel5 MySQL-server-5.5.25a-1.rhel5

? 停止mysql服务、删除之前安装的mysql
? 删除命令:rpm -e –nodeps 包名
rpm -ev MySQL-client-5.5.25a-1.rhel5 rpm -ev MySQL-server-5.5.25a-1.rhel5

查找mysql的目录 查找mysql的目录,并且删除mysql的文件和库(现在很多都是使用编译的mysql安装包进行安装的,所以查找文件是必须的)
find / -name mysql

? 查找结果如下(根据个人实际情况):
/var/lib/mysql /var/lib/mysql/mysql /usr/lib64/mysql

? 删除对应的mysql目录
rm -rf /var/lib/mysql rm -rf /var/lib/mysql rm -rf /usr/lib64/mysql

注意:/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf

检查是否卸载成功 再次查找机器是否安装mysql(注意!!!检查文件情况是必须的 注意!!!)
检查安装情况
rpm -qa|grep -i mysql

检查mysql文件情况
find / -name mysql

无结果说明卸载(删除)彻底。
Linux中安装mysql数据库 介绍
? 本次是在linux下安装mysql数据库。注意:本文章演示的编译好的mysql。无需编译直接安装即可。
? 本次演示的mysql版本为: MySQL Community Server 5.7.36
安装步骤 下载
  • 打开官方下载地址:https://dev.mysql.com/downloads/mysql/5.7.html。
    (根据自己对应是系统进行选择,这里演示的是Linux系统的安装)
Linux安装mysql
文章图片

  • 直接点击下面的just start my download即可下载,这里用的是windows系统下载,下载完成将文件上传到Linux。
Linux安装mysql
文章图片

  • 当然也可以在Linux系统中用wget方式进行下载,命令是:wget https://dev.mysql.com/downloads/file/?id=494229
解压
  • 创建文件夹命令
mkdir mysql

  • 在linux根目录下创建文件夹,将文件上传到该文件夹下,此文件夹为临时文件夹,后面会将解压的文件目录放入/usr/local目录下
Linux安装mysql
文章图片

Linux安装mysql
文章图片

  • 解压命令
tar -xzvf mysql.xxxxxx.tar.gz

  • 解压安装包:
Linux安装mysql
文章图片

解压完成后可以看到如下图文件夹:
Linux安装mysql
文章图片

  • 文件移动命令
mv 源文件目录 目标文件目录 mv mysql-5.7.36-linux-glib2.12.x86_64 /use/loacl/mysql

  • 将文件夹移动到/usr/local目录下并重命名为mysql
Linux安装mysql
文章图片

Linux安装mysql
文章图片

安装前准备
  • 1.创建mysql组及mysql用户,并授权
创建mysql组命令
groupadd 用户名 groupadd mysql

Linux安装mysql
文章图片

创建mysql用户
useradd 授权用户组 用户名 useeadd -r -g mysql mysql

Linux安装mysql
文章图片

  • 2.创建数据存放目录并授权
千万千万注意:
【Linux安装mysql】这里是在根目录("/")下创建/data/mysql目录,不要搞错了,我是因为没在根目录下创建,所有后面初始化时失败了多次,惨痛的教训,希望后来人不要重蹈覆辙。(是用于mysql数据的目录,具体如何使用请网下看)
?回到根目录下创建数据存放目录/data/mysql:
mkdir 授权 文件目录 mkdir -p /data/mysql

Linux安装mysql
文章图片

  • 3.配置my.cnf文件
打开文件,或者新建文件命令
vim /文件路径 vim /etc/my.cnf

Linux安装mysql
文章图片

打开etc下的my.cnf 文件将下面配置粘贴进去
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql #指定的是mysql 安装目录 datadir=/data/mysql #指定的是mysql数据目录 socket=/tmp/mysql.sock #mysql端口存放文件 log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #skip_ssl #关闭SSL加密连接 character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true lower_case_table_names=1 # mysql在windows下,默认是对表名大小写不敏感的,但是在[linux下,一些系统需要手动设置 #skip-grant-tables #免密码登陆

Linux安装mysql
文章图片

  • basedir:指定的是mysql 安装目录
  • datadir:指定的是mysql数据目录
  • socket:mysql端口存放文件
  • skip_ssl : 关闭SSL加密连接
  • lower_case_table_names=1 : mysql在windows下,默认是对表名大小写不敏感的,但是在[linux下,一些系统需要手动设置。
  • skip-grant-tables :免密码登陆 (用户修改账号密码,上面文件没该配置)
注意:如果安装的是新版(这里是mysql-5.7.33),my.cnf会有默认内容,如下,则需要你手动修改datadir、socket、log-error、pid-file几个参数
Linux安装mysql
文章图片

初始化数据库
  • 1.进入mysql的bin目录:cd /usr/local/mysql/bin
cd /usr/local/mysql/bin

Linux安装mysql
文章图片

  • 2.执行初始化并查看mysql账户生成的默认密码:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

Linux安装mysql
文章图片

启动mysql
  • 1.将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

Linux安装mysql
文章图片

  • 2.启动mysql,并查看是否启动成功
server mysql start --启动 ps -ef|grep mysql --查询服务命令

Linux安装mysql
文章图片

如果启动成功了,表示mysql安装成功了!!!
修改密码
  • 1.进入mysql的bin目录:
cd /usr/local/mysql/bin

  • 2.执行./mysql -u root -p,输入的密码为初始化数据库时的密码(启动客户端连接命令)。
./mysql -u root -p

Linux安装mysql
文章图片

? 显示mysql>即表示进入mysql成功!!!
  • 3.执行下述命令,修改密码并刷新权限
修改密码:
SET PASSWORD = PASSWORD('123456');

设置账号访问权限(ip):
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

刷新权限:
FLUSH PRIVILEGES;

Linux安装mysql
文章图片

  • 4.重新登录
这时如果使用(navicat等工具)远程登录,会发现无法连接如下图
navicat下载:
链接:https://pan.baidu.com/s/1aknIUwy2L1Ws2uYL88COng
提取码:og7l
Linux安装mysql
文章图片

  • 5.登录数据库,执行以下3个命令:
访问mysql库:
use mysql

使root能再任何host都可以访问:
update user set host = '%' where user = 'root';

?刷新权限:
FLUSH PRIVILEGES;

Linux安装mysql
文章图片

好了,到此,mysql就可以通过navicat或其它远程工具登录使用了!!!
遇到的问题
  • 问题1:初始化时提示:--initialize specified but the data directory has files in it. Aborting.
Linux安装mysql
文章图片

原因分析:是因为根目录下data目录下有文件
解决办法:在根目录下使用rm -rf data,将data文件夹删掉,重新创建一个/data/mysql文件目录即可,命令为:mkdir -p /data/mysql
  • 问题2:初始化时提示:log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
    原因分析:没有/var/log目录下没有mariadb目录和mariadb.log文件
    解决办法:创建文件目录和文件,然后给Mysql用户赋权即可
--创建文件夹 mkdir /var/log/mariadb --创建日志文件 touch /var/log/mariadb/mariadb.log --授权 chown -R mysql:mysql/var/log/mariadb/

  • 问题3:重启mysql,报错,提示:ERROR! The server quit without updating PID file (/data/mysql/localhost.localdomain.pid).
Linux安装mysql
文章图片

? 查看了这个目录,发现并没有localhost.localdomain.pid这个文件
? 百度了一下这个文件的作用,以下是别人的解决办法:
1.localhost.localdomain.pid 保存的是MySQL所启动的后台服务进程的PID值,如果这个文件丢了,可以创建一些,然后把一个数字放入其中。 2./tmp/mysql.sock 文件的作用是 MySQL通过这个unix socket 文件来与本地的客户端进行通信的。如果此文件丢了,可以通过重新启动服务器来重新创建它。 不建议将此文件放到 /tmp目录下。 丢失后在mysql的安装目录是没有*.pid,mysql.sock文件造成mysql无法重启,解决方法是重新创建hostname.pid文件 (1)ps -ef |grep mysql 找出mysql的进程,如:6225; (2)vi hostname.pid写入6225 (3)重新启动mysql正常.

? 于是新建localhost.localdomain.pid这个文件,然后重启,注意:新建后不能保存一个空文件,需要在里面输入一些数字
Linux安装mysql
文章图片

参考资料:
https://blog.csdn.net/qq_37598011/article/details/93489404
总结: 当mysql启动不了,如果根据启动报错解决不了,一定要学会看mysql错误日志。毕竟每个人所遇的情况不一定都是一样的,造成mysql启动不了的原因真的是太多了。
错误日志路径:my.cnf (Windows是my.ini)文件中的datadir指定路径中已.err结尾的文件

    推荐阅读