Centos7.6 安装mysql过程全记录

在centos 7.6上 离线安装mysql 的步骤,可参考下文:

一、查看当前MySQL的安装情况并卸载

1. 查看当前MySQL的安装情况

查找之前是否安装了MySQL

rpm -qa|grep -i mysql

2.卸载mysql

如果已经安装mysql,则需要先停止MySQL,再删除之前安装的MySQL ,把rpm -qa | grep mysql 得到的安装包名XXX 写上即 rpm -ev xxx 

rpm -ev bt-mysql56-5.6.47-1.el7.x86_64

3.删除老版本的目录

查找之前MySQL的目录,删除老版本的目录

find / -name mysql

删除MySQL对应的目录:

rm -rf xxxx/mysql

注意:卸载后配置文件 /etc/my.cnf 不会删除,需要手动删除

 rm -f /etc/my.cnf

4. 再次查看是否安装MySQL,确保MySQL完全卸载

rpm -qa|grep -i mysql

没有结果显示,说明MySQL已经被完全卸载干净,接下来就可以重新安装自己想要的MySQL版本了。

二、安装Mysql

1.创建mysql用户组和用户

检查mysql用户组和用户是否存在,如果没有,则创建

cat /etc/group | grep mysql

cat /etc/passwd |grep mysql

groupadd mysql

useradd -r -g mysql mysql

2.下载Mysql包

若服务器并不连接外网,需要将预先下载到的mysql安装包,通过内网导文件方式 导入服务器,之后再操作。

若服务器可联网,则可以通过命令:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

下载mysql安装包。

3. 解压

tar -zvxf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。

如果/usr/local/下已经存在mysql,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。

4.创建data目录

在/usr/local/mysql目录下创建data目录

[root@localhost /]# mkdir /usr/local/mysql/data

5.修改目录属组

更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

chown -R mysql:mysql /usr/local/mysql

chmod -R 755 /usr/local/mysql

如果报以上错误,说明mysql用户不存在,执行以下命令,操作完再执行更改权限命令

groupadd mysql

useradd -r -g mysql mysql

6.编译安装并初始化mysql

编译安装并初始化mysql

cd /usr/local/l\mysql/bin

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

务必记住初始化输出日志末尾的密码(数据库管理员临时密码):A temporary password is generated for root@localhost:XXXXXXX

注意:

此处若报如下错误信息,表示该链接库文件有没有安装使用:

[root@ecs-xiaochengxu bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

./mysqld: error while loading shared libraries: libaio.so.1的处理办法

执行如下命令安装:

 1.首先检查该链接库文件有没有安装使用,运行该命令后发现系统中无该链接库文件

rpm -qa|grep libaio

# 2. 安装

yum install  libaio-devel.x86_64  

如果不能联网,则不能通过yum install 方式获取安装libaio-devel ; 需要单独下载到rpm 安装包,然后通过rpm -ivh xxx.rpm方式 进行安装

成功后如下:

7. 编辑配置文件my.cnf 

编辑配置文件my.cnf

vim /etc/my.cnf  //或者vi /etc/my.cnf

添加配置如下:在[mysqld]下添加 

[mysqld]

datadir=/usr/local/mysql/data #数据库data目录

port = 3306  #端口

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #sql模式

symbolic-links=0

max_connections=400  #最大连接数

innodb_file_per_table=1 

lower_case_table_names=1 #表名大小写不敏感

character_set_server=utf8  #服务器端编码为utf8

参数注释:

lower_case_table_names:

       是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:

character_set_server:

       设置数据库默认字符集,如果不设置默认为latin1

innodb_file_per_table:

       是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;

解决中文乱码问题

show variables like '%character%'; 查询编码

show variables like '%character%';

 修改my.cnf文件  

#sudo vi /etc/my.cnf 

[mysqld]下加入代码:

      character_set_server=utf8

在[ mysql ]下加入代码:

      default-character-set=utf8

编辑/etc/my.cnf.d/client.cnf 

vi /etc/my.cnf.d/client.cnf

设置:

[client]

default-character-set=utf8

编辑vi /etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf

在mysql下添加

default-character-set=utf8

8. 启动mysql服务器

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

如果有报错信息:error: log-error set to '/var/log/mariadb/mariadb.log'

error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.

 ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

error: log-error set to '/var/log/mariadb/mariadb.log' 错误处理办法

首先需要理解报错信息:log-error 设置了日志为xxxx.log 然而文件不存在,建立一下对于mysql用户可写的xxx.log. 报错以及提示都非常明确。而这个日志路径则是配置在/etc/my.cnf 的【mysqld_safe】下的,指定了log-error 以及pid-file的路径:

于是针对错误很容易就能找到处理办法:新建/etc/my.cnf里指定路径的这个log以及pid文件(自己注意自己的路径,别瞎ctrl+c、v ,以下这个路径我的my.cnf是修改过的,但是本文里并没有截图,设置的路径与文件的文件不匹配还是会继续报错的) :

touch /usr/local/mysql/logs/mysql.log

touch /usr/local/mysql/logs/mysql.pid

创建了文件之后,还需要赋予权限,将文件所有者设置成 mysql用户:

chown -R mysql:mysql /usr/local/mysql/

开始处理这个问题的时候,没有理解到错误意思,所以我还修改了selinux的设置:

但是还是要报错:

然后就发现 my.cnf里配置 mysqld_safe配置的 /var/lib/mysql 文件夹不存在 所以报错:

mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

于是:mkdir -p var/lib/mysql  创建目录, 并设置目录权限,如下图所示:

重新执行:

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

显示如下结果,说明数据库安装成功

9. 添加软链接,并重启mysql服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

这里需要注意的是:如果是通过上述命令添加软链接,则mysql数据的服务名应该是mysql, 而不是常规的mysqld。

通过配置好的服务启动mysql数据库服务 :service mysql restart,注意此时不能用systemctl start mysql,不然会报错:

service mysql restart

Can't connect to local MySQL server through socket '/tmp/mysql.sock' 的解决方案

Enter password:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

通过如下方式:

mysql -uroot -h 127.0.0.1 -p

10. 登录mysql,修改密码(密码为步骤6生成的临时密码)

mysql -u root -p

# 使用以下命令修改密码

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

# 报错使用下面命令修改

从8.0开始修改密码有了变化,在user表加了字段authentication_string,修改密码前先检查authentication_string是否为空,如果不为空

use mysql;

update user set authentication_string='' where user='root';--将字段置为空

ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密码为root

2.如果为空,直接修改

ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密码为root

11. 开放远程连接

mysql>use mysql;

msyql>update user set user.Host='%' where user.User='root';

mysql>flush privileges;

执行完上边命令后,通过数据库客户端就可以连上数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/72079.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis集群 (三十九)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、Redis主从复制 1.1 概念 1.2 作用 1.3 缺点 1.4 流程 1.5 搭建 1.6 验证 二、Reids哨兵模式 2.1 概念 2.2 作用 2.3 缺点 2.4 结构 2.5 搭建 2.6 验证 三、Red…

基于 CentOS 7 构建 LVS-DR 群集 配置nginx负载均衡

环境配置: RHCE客户机192.168.100.146node1lvs192.168.100.145node2RS192.168.100.147node3RS192.168.100.148 配置ipvsadm httpd: [rootnode1 ~]# yum install ipvsadm.x86_64 [rootnode2 ~]# yum install http -y [rootnode2 ~]# systemctl …

SpringBoot案例-部门管理-修改

目录 前言 查看页面原型,明确需求 页面原型 需求 阅读接口文件 思路分析 功能接口开发 控制层(Controller类) 业务层(Service类) 业务类 业务实现类 持久层(Mapper类) 接口测试 前…

centos 7.x 单用户模式

最近碰到 centos 7.9 一些参数设置错误无法启动系统的情况,研究后可以使用单用户模式进入系统进行恢复操作。 进入启动界面,按 e ro 替换为 rw init/sysroot/bin/sh 替换前 替换后 Ctrl-x 进行重启进入单用户模式 执行 chroot /sysroot 可以查看日…

js jquery写一个画板 实现撤回、清空、换色的功能

画布的canvas画板的大小就是这个画板图片的大小 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><metaname"viewport&qu…

云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初步使用(二)

前言&#xff1a; 在前面一篇文章云计算|OpenStack|使用VMware安装华为云的R006版CNA和VRM---初始安装&#xff08;一&#xff09;_华为cna_晚风_END的博客-CSDN博客 介绍了基于VMware虚拟机里嵌套部署华为云的云计算&#xff0c;不过仅仅是做到了在VRM的web界面添加计算节点…

云安全攻防(八)之 Docker Remote API 未授权访问逃逸

Docker Remote API 未授权访问逃逸 基础知识 Docker Remote API 是一个取代远程命令行界面&#xff08;rcli&#xff09;的REST API&#xff0c;其默认绑定2375端口&#xff0c;如管理员对其配置不当可导致未授权访问漏洞。攻击者利用 docker client 或者 http 直接请求就可以…

Spring Boot集成Mybatis Plus通过Pagehelper实现分页查询

文章目录 0 简要说明Pagehelper1 搭建环境1.1 项目目录1.2 项目搭建需要的依赖1.3 配置分页插件拦截器1.4 源代码启动类实体类数据层xml映射文件业务层业务层实现类控制层接口配置swagger请求体 2 可能出现的疑问或者问题2.1 关于total属性疑问2.2 分页不生效问题 3 案例说明3.…

数据库技术--数据库引擎,数据访问接口及其关系详解(附加形象的比喻)

目录 背景数据库引擎Jet数据库&#xff1a;ISAM&#xff1a;ODBC&#xff08;Open Database Connectivity&#xff09;&#xff1a; 数据访问接口ADO&#xff08;ActiveX Data Objects&#xff09;DAO&#xff08;Data Access Objects&#xff09;RDO&#xff08;Remote Data O…

【C语言】操作符详解

目录 一、算数操作符 二、移位操作符 1.左移操作符 2.右移操作符 (1) 逻辑右移 (2) 算术右移 (3)小总结 三、位操作符 四、赋值操作符 五、单目操作符 六、关系操作符 七、逻辑操作符 八、 条件操作符 九、逗号表达式 十、下标引用、函数调用和结构成员 1. [ ]下…

第一百二十八天学习记录:数据结构与算法基础:栈和队列(上)(王卓教学视频)

栈和队列的定义和特点 1、栈和队列是两种常用的、重要的数据结构 2、栈和队列是限定插入和删除只能在表的“端点”进行的线性表 线性表可以在任意一个位置插入和删除&#xff0c;栈只能在最后位置插入和删除 队列 只能删除第一个元素 栈和队列是线性表的子集&#xf…

LeetCode面向运气之Javascript—第27题-移除元素-98.93%

LeetCode第27题-移除元素 题目要求 一个数组nums和一个值val&#xff0c;你需要原地移除所有数值等于val的元素&#xff0c;并返回移除后数组的新长度 举例 输入&#xff1a;nums [3,2,2,3], val 3 输出&#xff1a;2, nums [2,2] 输入&#xff1a;nums [0,1,2,2,3,0,4,2…

Mac思维导图软件Xmind for Mac中文激活版

好的思维导图软件能帮助用户更好的发挥创作能力&#xff0c;XMind是一款流行的思维导图软件&#xff0c;可以帮助用户创建各种类型的思维导图和概念图。 多样化的导图类型&#xff1a;XMind提供了多种类型的导图&#xff0c;如鱼骨图、树形图、机构图等&#xff0c;可以满足不同…

Unity ML-Agent

介绍: 环境搭建 待为完序

温室花卉种植系统springboot框架jsp鲜花养殖智能管理java源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于Git无线传感网络的温室花卉种植智能控制系统 系统…

【linux-keepalive】keepalive避免单点故障,高可用配置

keepalive: [rootproxy ~]# yum install -y keepalived [rootproxy ~]# vim /etc/keepalived/keepalived.conf global_defs {router_id proxy1 //设置路由ID号vrrp_iptables //不添加任何防火墙规则 } vrrp_instance V…

C++_模板初阶

在面向对象中&#xff0c;我们可以使用重载来实现多态。 但是问题在于&#xff0c;重载的函数仅仅是类型不同&#xff0c;代码复用率比较低&#xff0c;只要有新的类型出现时&#xff0c;就要增加对应的函数&#xff1b;另一方面它的代码可维护性比较低&#xff0c;一个出错可…

Android之消除APP图标的白色边框

有问题的效果&#xff1a; 解决方案&#xff1a; 第一步&#xff1a;app右键—>new—>Image Asset 第二步&#xff1a;上传Logo图标&#xff0c;选择每种分辨率&#xff0c;预览看效果&#xff0c;选择Resize&#xff0c;可以微调 第三步&#xff1a;点击 Next&#xff…

nbcio-boot升级到3.1后出现online表单新增报错

nbcio-boot升级springboot、mybatis-plus和JSQLParser后出现新增online表单的时候报错&#xff0c;如下&#xff1a; 2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispat…

【Bert101】最先进的 NLP 模型解释【01/4】

0 什么是伯特&#xff1f; BERT是来自【Bidirectional Encoder Representations from Transformers】变压器的双向编码器表示的缩写&#xff0c;是用于自然语言处理的机器学习&#xff08;ML&#xff09;模型。它由Google AI Language的研究人员于2018年开发&#xff0c;可作为…