服务器(CentOS)部署安装MySQL

上面让自己在服务器上搭个MySQL环境,这我一前端我会啥啊?记录一下方便以后学习,也希望能够帮助一些没有一点Linux基础的,爱自己研究的小伙伴。
因为新开的服务器资源,所以就不需要检查路径下是否有MySQL。如果是重新安装需要先删除原先的MySQL。

rpm -qa | grep mysql	#检查是否安装过MySQL,如果什么都没有说明没安装过
rpm -e --nodeps (mysql-5.7.35-linux-glibc2.12-x86_64)	#()里为你上一条命令查到的MySQL文件名,执行命令时括号删除
rpm -qa | grep mysql	#检查是否删除

上述步骤操作完后没有问题再执行下面两条语句

whereis mysql	
find / -name mysql	#查询所有Mysql对应的文件夹

正常如果没有下载应该是没有的,因为我事先拷了MySQL文件,所以出现了,按理说不用删除,但是既然碰到了就删除一次(顺便熟悉熟悉Linux命令,我也很长时间没碰过Linux系统了)
我是每执行完一步查询就删除一次,可以查询都执行完再一起执行删除命令:

rm -rf /usr/lib/mysql	/usr/share/mysql	/etc/selinux/targeted/active/modules/100/mysql
#后面为你有MySQL文件的路径,可以从上面查询的结果得知,每个路径之间用空格分开即可

检查是否有MySQL组和用户是否存在,正常上面步骤执行下来不出错是没有的;再新建MySQL用户组和用户

cat /etc/group | grep mysql		#检查是否存在用户组
cat /etc/passwd | grep mysql	#检查是否存在用户
groupadd mysql	#添加mysql用户组
useradd -r -g mysql mysql	#添加mysql用户

下载MySQL(官网下载地址),因为公司服务器不让连外网就直接从本地下载了然后upload到服务器上。
一般选择Linux-Generic即可,服务器是centerOS系统,不知道下Ubuntu的会不会有不兼容性之类的问题。
下载后直接拖进服务的Linux系统里,随便找个自己记得的路径即可。
然后执行:

cd /home/supconit/mysql		#切换到你自己的路径下
tar xzvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz		#解压缩
ls		#查看路径下的文件

没有错误就会像这样
在这里插入图片描述
移动文件:

mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql	#移动文件至/usr/local/mysql
cd /usr/local/mysql	#切换到/usr/local/mysql下
ls	#查看当前路径下文件

在这里插入图片描述
创建data文件夹,更改所属的用户组和用户并赋予权限
这里科普一下chmod后跟的数字的含义:
第一个数字表示文件所有者的权限;
第二个数字表示与文件所有者同属一个用户组的其他用户的权限;
第三个数字表示其它用户组的权限。

mkdir /usr/local/mysql/data		#创建data目录
chown -R mysql:mysql /usr/local/mysql	#改mysql目录下所有的目录及文件夹所属的用户组和用户
chmod -R 755 /usr/local/mysql		#赋予文件所有者可读可写可执行;
#与文件所有者同属一个用户组的其他用户可读可执行;其它用户组可读可执行权限

在这里插入图片描述
编译安装并初始化mysql:

cd /usr/local/mysql/bin		#切换到bin目录下
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
#编译安装并初始化mysql

安装成功如图,记住最后@localhost: 后的字符串(图马赛克处),为mysql管理员临时登录密码。
在这里插入图片描述
执行以下命令,进入my.cnf文件,如下图所示

vi /etc/my.cnf

在这里插入图片描述
按i进入编辑模式,添加如下配置

[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1

lower_case_table_names=1		#表名不区分大小写

完成后按esc退出编辑后,输入:wq 命令保存退出。
再启动MySQL服务器

/usr/local/mysql/support-files/mysql.server start

这里报错了,报错信息:
在这里插入图片描述
两个错误查了下资料,第一个是没有/var/log/mariadb/mariadb.log日志文件,添加一下即可,命令:

mkdir /var/log/mariadb	#新建/var/log/mariadb目录
touch /var/log/mariadb/mariadb.log	#新建mariadb.log文件
chown -R mysql:mysql /var/log/mariadb/	#赋予文件读写权限

第二个错误是因为我的my.cnf文件的datadir路径没改,
原来的是datadir=/var/lib/mysql,socket路径也需要对应修改一下(不知道什么原理)。

datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock

再执行启动命令就成功啦!如图在这里插入图片描述
添加软链接,并且重启MySQL服务,成功如图所示

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#ln命令是Linux非常重要的命令之一,用法是ln -s 源文件 目标文件,类似于Windows的超链接
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
#想删除软链接 rm -rf /usr/bin/mysql即可,后面路径为目标文件的路径。
service mysql restart	#重启mysql服务

成功如图所示
在这里插入图片描述
接下来登录MySQL,密码为之前localhost后那串字符。我出现了报错信息如下:
在这里插入图片描述
网上说了一些教程,我选了个看起来比较靠谱的,亲测有用——连接文件。
上面报错无非不能通过/tmp/mysql.sock路径下的socket连接MySQL服务器,先找一下你的mysql.sock文件在哪。然后再连接到/tmp/mysql.sock目录下。

find / -name mysql.sock	#查找mysql.scok文件
ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock
#将查找到的路径链接到/tmp/mysql.sock

在这里插入图片描述
链接后重启MySQL服务,再登录MySQL问题就解决啦!
在这里插入图片描述修改密码,别忘了语句最后加分号

set password for root@localhost = password('yourpass');

开放远程连接

use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

全部成功执行就像这样。
在这里插入图片描述
然后输入下面指令退出mysql命令行。

quit;

设置开机自启动

#将服务文件拷贝到init.d下,并重命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld		#赋予可执行权限
chkconfig --add mysqld	#添加服务
chkconfig --list	#显示服务列表

显示如下界面就完成啦!
在这里插入图片描述

补充:可能有很多小伙伴最后在本地数据库工具测试连接的时候报错:can`t connect to mysql server on ‘172.16.2.244’(10038)
问了公司Linux大神,说是服务那边防火墙或一些安全组件的问题

解决:在服务器输入以下命令

systemctl stop firewalld	#关闭防火墙

再次进行连接测试,如果还有问题。打开selinux的config文件(大神说这是一个Linux安全组件)

vi /etc/selinux/config

修改selinux的属性,修改成permissive和disabled都可以。
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值