#ubuntu系统deb包安装mysql
摘要:ubuntu系统通过dpkg命令安装deb软件包,安装mysql数据库
一、下载mysql安装包
ubuntu18。04下载链接:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.31-1ubuntu18.04_amd64.deb-bundle.tar
ubuntu20.04下载链接:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.31-1ubuntu20.04_amd64.deb-bundle.tar
ubuntu22.04下载链接:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.31-1ubuntu22.04_amd64.deb-bundle.tar
ubuntu22.10下载链接:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-server_8.0.31-1ubuntu22.10_amd64.deb-bundle.tar
二、下载依赖包(两个)
以下链接为Ubuntu18.04 LTS下的依赖包,不同系统依赖包不一样
(1)libaio1
http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.110-5_amd64.deb
(2)libmecab2
http://archive.ubuntu.com/ubuntu/pool/universe/m/mecab/libmecab2_0.996-5_amd64.deb
三、安装顺序
1、解压tar包
tar -xvf mysql-server_8.0.29-1ubuntu18.04_amd64.deb-bundle.tar
2、安装顺序(因为包存在依赖关系,所以要安顺序安装)
dpkg -i mysql-community-client-plugins_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i mysql-community-client-core_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i mysql-common_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i mysql-community-client_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i libmysqlclient21_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i libmysqlclient-dev_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i mysql-client_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i libaio1_0.3.110-5_amd64.deb #依赖包
(如果解压出来没有libaio1这个包,那么直接用apt安装:apt install libaio1)
dpkg -i libmecab2_0.996-5_amd64.deb #依赖包
dpkg -i mysql-community-server-core_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i mysql-community-server_8.0.29-1ubuntu18.04_amd64.deb
dpkg -i mysql-server_8.0.29-1ubuntu18.04_amd64.deb
最后一个包安装弹窗需要设置root用户密码。
四、启动服务
mysql -V查看mysql版本
systemctl status mysql
五、登录
mysql -u root -p
然后输入在上面设置的root用户密码
最后:
Linux The server quit without updating PID file的几种解决方法
不管是在安装还是运行MySQL的时候,都很有可能遇到报错:Linux The server quit without updating PID file。字面意思是无法更新pid文件,pid大家都懂得,就是MySQLserver的主进程,MySQL中比较重要的三个文件,一个是管进程的,也就是上面报错的那个pid文件,这个文件名是本机的域名加pid后缀,第二个文件是mysql.sock 文件,这个文件是进程间通信,以及mysql与其他程序通信的socker接口文件,第三个文件是最为重要的mysql配置文件,没有之一,my.cnf、端口的定义,大小写敏感的定义。连接数的定义,等等配置都在这个文件内定义。
那么,这个错误的原因是什么呢?我想说,原因很多,需要根据具体情况具体分析。
第一,权限的问题,在出这个错误的时候,我所说的权限是mysq.cnf和所定义的mysql数据库存放目录的权限,要保证是mysql用户的权限,如果启动mysql还有问题,那么需要考虑提高权限了。
说人话, 数据库存放目录必须是mysql这个用户的属组(通常的,安装MySQL的时候建立的用户为mysql,不建议使用别的用户),mysql的启动脚本必须有执行权限。赋予权限的命令为:chown -R mysql. /usr/local/mysql,假设我的mysql是安装在 /usr/local/mysql目录,数据库存放目录为 /usr/local/mysql/data/
第二,进程中有mysql的进程,上次的退出并没有自动结束该pid,导致新的进程无法启动,毕竟,mysql每次启动系统只会给分配一个pid号,再启动,系统也不可能给你分配pid号了。运行命令 ps -ef |grep mysql 找到mysql的进程结束它,然后在启动mysql。
第三,进入mysql数据库的存放目录,如果有mysql-bin.index这样的文件,删除它,在启动mysql,该文件产生的原因不详,不过删除必定没影响,或者另一个binlog.index也删除,两个index后缀的都删除也可以。
第四,my.cnf 这个配置文件内容不对,检查有没有skip-federated这个字段,如果有注释或者删除。
检查是否定义了数据库存放目录,如果没有定义,请立刻定义。
第五,错误日志目录不存在解决方法:使用“chown” “chmod”命令赋予mysql目录所有者及权限。
第六,my.cnf文件内存在lower_case_table_names=1 字段,注释掉它。(这个选项是1表示不区分大小写)。具体原因不详。
总结:mysql说好安装也好安装,说难也难,难点在于权限的配置,给高了不安全,给低了有可能启动出问题,如果启动出问题了,首先第一件事就是检查目录权限,第二就是检查my.cnf这个配置文件,skip-federated,lower_case_table_names=1 ,这样的字段注释掉,第三,清除旧的mysql进程,如果有就清除掉,旧的不去新的不来,就这么一个道理。第四,进入mysql数据库存放目录删除index后缀的文件。下面,给张图,详细的权限慢慢体会、
/etc/my.cnf文件配置:
注意:
7、防火墙原因.
centos 会默认开启selinux .
[root@centos74 ~]# vim /etc/selinux/config
SELINUX=disabled