Option1 下载server完整的RPM包进行安装,最后失败了
注意:直接安装可以从Option2 :通过yum安装开始。
下面这个过程中可能会不断发现缺少依赖包,或者与已有软件发生冲突。
直接把链接拷贝出来,在云端或者虚拟安装
curl https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-community-server-8.0.23-1.el7.x86_64.rpm -o m.rpm
通过RPM工具安装rpm包,这里会遇到依赖包缺失找不到的问题。
通过yum继续安装缺失的包:
yum -y install perl
继续安装rpm包,发现缺少libaio包:“libaio.so.1()(64bit) is needed by mysql-community-server-8.0.23-1.el7.x86_64”
http://mirror.centos.org/centos/7/os/x86_64/Packages/
rpm包名如果跟上devel,表示这个是开发相关的包(头文件,链接库)。举个简单来说,下载一个python-devel主要是为了在python源码修改方面开发使用。
所以这里选择libaio(不带devel)x86_64的包,我们的目的是使用这个libaio库。
curl http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm -o libaio.rpm
继续后有发现软件冲突和无底洞的未知依赖
安装后发现还缺少了几个依赖。。。
查看操作系统有自带到mariadb(mysql开源分支)
吐了,新的错误来了:Failed dependencies: libmysqlclient.so
尝试了上述命令(rpm -e),发现也删除不了。
通过rpm完整包来安装,整个过程需要自己解决一个一个软件依赖,这个过程可能是个无底洞。。。
Option2 好吧,重新来过,通过yum来安装
参考了这个文章:https://www.runoob.com/mysql/mysql-install.html(不可以直接照搬)
访问mysql的yum repo页面,我们可以看到,MySQL提供了一个精简到rpm包。
通过安装它,可以通过yum安装mysql-server(自动安装其他需要依赖)
打开 https://dev.mysql.com/downloads/repo/yum/ (mysql开放的yum repo page)
下载一个RedHat/Linux7的rpm包
curl https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm -o mysql.rpm
rpm -ivh mysql.rpm
执行下面命令安装
yum update #升级所有应用包的同时也升级系统内核,可以看情况执行另一句:yum upgrade, 只升级所有应用包。
yum -y install mysql-server #需要一些时间下载包安装
好了,安装完成。
使用MySQL
刚刚安装好,我们发现系统多了/var/lib/mysql目录,同时的也多了一个mysql用户和用户组。
通过systemctl查看进程状态发现mysqld(mysql server的daemon进程)是inactive,还没有开启。
如果发现,/var/lib目录下的mysql目录并非mysql用户管理,需要执行:
chown mysql:mysql -R /var/lib/mysql
执行下一个命令初始化mysql
mysqld --initialize
然后执行:ls -rtla /var/lib/mysql*, 数据目录创建了,不过这里有点小问题,先留意一下。
初始化了数据库发现启动不了
systemctl start mysqld
查看/etc/my.cnf 发现也没啥特别的,我们看看log吧
看的问题所在了,mysqld进程发现’ibdata1‘ 不可写。
这个跟前面初始化发现所有文件都是root用户读写,导致mysqld进程无法操作
我们可以尝试下面命令,将/var/lib/mysql下面的所有文件都改为mysql用户拥有的。
cd /var/lib/mysql && find . -name '*.*'|xargs chown -R mysql:mysql
ok, mysqld进程跑起来了
使用MySQL
以前旧版本MySQL一般装完后,打mysql命令,就能进入mysql client终端。
这个版本发现没有生成空密码的用户了。
好吧,我们回去看log, 新版本的(8.X)不默认生成空密码用户了,具体在log里面。
复制密码保存,并输入命令: mysql -u root -p
好了,成功连接了服务器,试试查询数据库看看。
遇到错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
MySQL8 第一次登录需要修改用户密码
alter user 'root'@'localhost' identified by '123456';
show database;
编写MySQL HelloWorld
输入下面的SQL试试
use mysql; --#使用mysql库 create table developer (--创建一个表 d_id INT NOT NULL AUTO_INCREMENT, name VARCHAR(40) NOT NULL, title VARCHAR(100) NOT NULL, PRIMARY KEY (d_id) ); select * from developer ; -- 查询数据 insert into developer (name,title) values ('Levin','Engineer'); -- 添加数据 select * from developer ;