一、下载并解压
mysql数据库是开源的,可直接上MySQL官网下载
下载后利用xftp工具(可选)将压缩包传送到linux系统,并解压
重命名解压后的文件夹为mysql8(个人自定义),并移动到/usr/local路径下
二、配置mysql
root 权限下打开/etc/my.cnf文件(vi /etc/my.cnf)编辑:
图中编辑主要为连接端口,编码格式以及相关文件存放路径
skip-grant-tables:不使用mysql数据库里的信息来进行访问控制(这将允许任何用户去修改任何数据库)
编辑好保存退出,此时会发现文件中很多路径并不存在,此时需要新建以下文件夹(注意只新建文件夹,文件初始化MySQL时会自动生成):
/tmp/mysql8/
/usr/local/mysql8/data
/var/log/mysqld/
/var/run/mysqld/
新建一个MySQL用户组以及用户(useradd -m mysql)
将以上新建的文件夹权限均改为MySQL权限(chown -R mysql :mysql xxx)
切换到mysql 用户(su root),进入mysql8目录(cd /usr/local/mysql8),输入初始化指令(./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data/):
得到初始化密码,记得复制保存一下,等下会用到
进入/usr/local/mysql8/support-files目录,启动mysql(./mysql.server start):
由于初始化密码特别难记,此时我们需要重新设置一下mysql的密码:
首先先关闭mysql(./mysql.server stop),切换到root用户(su root),修改/etc/my.cnf文件,将之前写入的skip-grant-tables这一行用#注释掉,保存退出后切换到mysql用户(也可不切换),再启动mysql(./mysql.server start),进入/usr/local/mysql8目录,输入指令./bin/mysql -h localhost -u root -p回车,此时需要输入密码(密码内容不可见),直接将之前的保存的初始化密码复制粘贴一下就行,此时进入到mysql数据库:
此时只用输入mysql指令set password=‘new_password’; 即可(new_password个人自定义)
可选:如果需要开启远程访问,可以先退出mysql(quit;),再用设置好的新密码进行登录,输入:
use mysql;
update user set host=’%’ where user=‘root’;
flush privileges;
即可远程访问此数据库了
四、安装与配置中常见的问题
1.mysql初始化是否正确
如果初始化失败,应删除/usr/local/mysql8/data目录下的所有文件,然后检查出现的问题(文件夹访问权限,数据库相关文件夹未创建),或者/etc/my.cnf文件编辑是否有编辑错误的地方(整个配置流程中,产生及访问的文件路径都是以此为准),再重新初始化
2.无法启动mysql
使用初始化命令的时候,必须是mysql用户(不能是root用户),因为初始化产生的文件以当前用户为准,如果使用root用户初始化mysql,启动MySQL时相关文件由于权限原因不能被访问,导致启动失败
3.mysql启动与关闭是否正确
使用ps -ef | grep mysql 指令可查看当前mysql进程,启动失败可能是mysql已经开启,而又无法关闭(可能卡死),使用pkill mysql指令即可杀死所有mysql进程
4.创建mysql用户和用户组
1)创建时如果输入的是:useradd -g mysql mysql
此命令适用于系统中已有用户组mysql,系统没有mysql用户组时,此命令不成功,需先创建groupadd mysql,再输入useradd -g mysql mysql 即可
2)创建时参数忘记输入-m:
-m参数为自动创建用户的登录目录,创建时没有-m参数,切换到新用户时,会出现 -bash-4.2$ 的状态
查看/etc/passwd文件,最后一行即为新创建的用户信息,其中有
::/home/xxx:/bin/bash
但是/home目录下并没有xxx的目录,此时需要新建一个/home/xxx目录,然后把相关的配置文件复制进来,如下:
cp /etc/skel/.bash_logout /home/xxx
cp /etc/skel/.bash_profile /home/xxx
cp /etc/skel/.bashrc /home/xxx