当前位置: 首页 > news >正文

linux环境安装使用mysql详解

01-安装MySQL并启动

   1.1 环境准备

# 1.卸载mariadb,否则安装mysql会出现冲突
    (1).执行命令rpm -qa | grep mariadb   会列出所有被安装的mariadb rpm 包;
    (2).执行命令rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
    

   1.2本地安装(5.6版本默认root没有密码)

上传下载好的软件包到系统中

 

# 0.执行本地安装包之前必须先安装vim
yum install -y vim
# 1.安装步骤
rpm -ivh perl-*
rpm -ivh net-tools-2.0-0.22.20131004git.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.6.42-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.6.42-2.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.6.42-2.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.6.42-2.el7.x86_64.rpm

    1.3 在线安装(我选择的是在线安装,安装的是mysql5.7版本)

# 1.添加官方的yum源创建并编辑mysql-community.repo文件
vi /etc/yum.repos.d/mysql-community.repo
# 2.粘贴以下内容到源文件中
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
#注意:如果需要安装mysql5.7只需要将baseurl修改即可
# 3.安装mysql
sudo yum install -y mysql-community-server

    1.4 设置root用户密码

# 1.启动mysql数据库
[root@localhost mysql]# systemctl start mysqld
# 2.查看mysql版本号
[root@bogon usr]# mysql -V
# 3.修改mysql数据库密码    
mysqladmin -u root -p password 回车 输入原始密码 在输入新的密码
注意:5.7之前版本安装完成之后没有密码,mysql5.7之后的版本的初始密码是随机生成的,放在了 /var/log/mysqld.log
使用命令 cat/var/log/mysqld.log 读出来即可 ,mysql5.6之后没有初始密码,可以使用:mysql -u root 命令直接登录,不用输入密码
mysql5.6版本修改密码,使用命令: mysqladmin -u root -p  password 'Root!123' ,因为mysql5.6没有初始密码-p后面不用输入密码,在password输入新密码,Root!123是新密码
# 4.登录mysql
[root@localhost mysql]# mysql -u root -p
查看mysqld.log文件分配的临时密码

 

安装之后目录分构,有时候usr/lib/mysql没有mysql文件,但是不要慌,这块没有仔细研究,但是只要能启动运行就证明安装成功

 

    1.5 开启远程访问

# 1.安装完成mysql时,发现mysql数据库,不允许我们远程连接需要修改设置

 

# 2.登录mysql,并选择使用mysql数据库

 

# 3.查看mysql库中的所有表

 

# 4.查询user表

 

# 5.执行如下命令
grant all privileges on *.* to 'root'@'%' identified by 'root账号的密码' with grant option;

 

# 6.刷新权限
flush privileges;

 

# 7.重启服务
systemctl restart mysqld
# 8.关闭防火墙
systemctl stop firewalld
# 9.测试连接

 

这时如果你还是不能访问,数据库报:10038,查看你的云服务器(在关闭防火墙的前提下)
如果是腾讯云服务器:在防火墙添加一条开放mysql 3306端口,然后再次测试就可以了。
    

 

    1.6 配置mysql的环境变量

1.修改/profile文件
vi /etc/profile
2.在文件的末尾,添加如下代码
export MYSQL_HOME=mysql安装目录(/usr/local/mysql-5.7.36)
export PATH=$PATH:$MYSQL_HOME/bin
3.刷新文件
source /etc/profile
4.测试,切换到根目录然后登陆mysql,没有提示无法识别mysql说明配置成功
cd /
mysql -uroot -p

02-Linux中MySQL操作详解

    2.1 修改mysql登录密码

    
    首先登录mysql
mysql -u root -p
    
    然后输入修改密码
set password for username @localhost = password(newpwd);
#username:账号(root)
#newpwd:新密码

 

    2.2忘记密码,找回密码

    
    第一步:修改my.cnf文件
vi /etc/my.cnf
 
    第二步:在[mysqld]下 加上 skip-grant-tables  如下:
[mysqld]
datadir=/var/lib/mysql
skip-grant-tables
    第三步:重启mysql
systemctl restart mysqld
    第四步:登陆mysql,输入账号直接回车
mysql -u root
    
    第五步:修改密码
update mysql.user set authentication_string=PASSWORD('Root!123') where User='root';
    第六步:刷新
flush privileges;
    第七步 改回my.cnf重启mysql
        登陆后任何操作都会提示如下信息
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
    :再次刷新一下密码
set password for root@localhost = password('Root!123');
            最后刷新一下
flush privileges;

    2.3 linux卸载mysql

     首先查看mysql的安装情况
rpm -qa|grep -i mysql
    
    显示之前安装了:
MySQL-client-5.5.25a-1.rhel5
MySQL-server-5.5.25a-1.rhel5
     停止mysql服务,并删除包, 删除命令: rpm -ev 包名
systemctl stop mysqld
rpm -ev MySQL-client-5.5.25a-1.rhel5
rpm -ev MySQL-server-5.5.25a-1.rhel5
     如果提示依赖包错误,则使用以下命令尝试
rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps
     查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
    
    查找结果如下:
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
     删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
    注意: 卸载后  /etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
    再次查找机器是否安装mysql
rpm -qa|grep -i mysql
    无结果,说明已经卸载彻底,接下来直接安装mysql即可

03-MySQL主从复制

 

# 0.架构规划
192.168.202.201 master 主节点
192.168.202.202 slave 从节点
# 1.修改mysql的配置文件
[root@localhost mysql]# vim /etc/my.cnf
# 2.分别在配置文件中加入如下配置
主数据库
server-id=1
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
从数据库
server-id=2
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
注意:两个机器的server-id不能一致,该配置要配置在[mysqld]下,配置在别的下面无效!

 

# 3.重启mysql服务
systemctl restart mysqld
# 4.登录mysql执行如下命令检测配置是否生效,如果value值和你配置的server-id一致,证明配置成功
SHOW VARIABLES like 'server_id';

 

# 5.登录master节点执行如下命令
show master status;

 

# 6.登录从节点执行如下命令:
change master to
master_host='192.168.80.129',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000001',
master_log_pos=120;

 

# 7.开启从节点
start slave;
#关闭从节点
stop slave;

 

# 8.查看从节点状态
show slave status\G;
************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.15.0.9
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
注意:
1.出现 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 说名成功,
2.如果在搭建过程出现错误,可以查看查看错误日志文件 cat /var/log/mysqld.log
# 9.通过客户端工具进行测试
# 10.关闭主从复制(在从节点执行)
stop slave;
注意:如果出现Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593错误,请执行如下命令,rm -rf /var/lib/mysql/auto.cnf删除这个文件,之所以会出现这样的问题,是因为我的从库主机是克隆的主库所在的主机,所以auto.cnf文件中保存的UUID会出现重复.

04-读写分离
4.1 MyCat引言
基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。
MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MYCAT的产品质量。MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设.

 

4.2 安装Mycat
# 1.下载mycat
http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
# 2.解压mycat
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

 

# 3.查看解压之后目录]
[root@localhost mycat]# ls
总用量 12
drwxr-xr-x. 2 root root 190 10月 14 22:58 bin
drwxrwxrwx. 2 root root 6 3月 1 2016 catlet
drwxrwxrwx. 4 root root 4096 10月 14 22:58 conf
drwxr-xr-x. 2 root root 4096 10月 14 22:58 lib
drwxrwxrwx. 2 root root 6 10月 28 2016 logs
-rwxrwxrwx. 1 root root 217 10月 28 2016 version.txt

 

# 4.移动到/usr目录
mv mycat/ /usr/
# 5.配置mycat中conf下的配置schema.xml

 

<!-- 定义MyCat的逻辑库 dataNode代表映射真实数据节点-->
<schema name="test_schema" checkSQLschema="false" sqlMaxLimit="100" dataNode="testNode"></schema>
<!-- 定义MyCat的数据节点 name:名字必须和dataNode值一致 dataHost:映射真实主机 database:映射真实的库-->
<dataNode name="testNode" dataHost="dtHost" database="test" />
<!-- 定义数据主机 name:名字必须和dataHost保持一致  -->
<dataHost name="dtHost" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
    <!-- 心跳检测  -->
    <heartbeat>select user()</heartbeat>
    <!--写节点-->
    <writeHost host="hostM1" url="192.168.28.128:3306" user="root" password="root">
        <!--从节点-->
        <readHost host="hostS1" url="192.168.28.129:3306" user="root" password="root" />
    </writeHost>
</dataHost>
# 6.配置登陆mycat的权限server.xml
<system>
    <!-- 这里配置的都是一些系统属性,可以自己查看mycat文档-->
    <property name="defaultSqlParser">druidparser</property>
    <!-- 编码,mysql版本如果是5.x必须是utf8-->
    <property name="charset">utf8</property>
</system>
<!-- 配置用户信息 name:代表登陆mycat的用户名 password:代表登陆密码-->
<user name="root">
    <property name="password">root</property>
    <!-- 用来指定可以操作的逻辑库-->
    <property name="schemas">aa</property>
</user>
# 7.启动mycat
./mycat console
# 8.查看日志
tail -f ../logs/mycat.log
# 9.数据库连接配置,测试

持续更新!

相关文章:

linux环境安装使用mysql详解

01-安装MySQL并启动 1.1 环境准备 # 1.卸载mariadb&#xff0c;否则安装mysql会出现冲突 &#xff08;1&#xff09;.执行命令rpm -qa | grep mariadb 会列出所有被安装的mariadb rpm 包&#xff1b; &#xff08;2&#xff09;.执行命令rpm -e --nodeps mariadb-libs-5.5.56…...

SUNTANS模型学习(9)——学习Tidal forcing算例

学习Tidal forcing算例 简介网格配置与地形定解条件设置初始条件设置边界条件设置开边界处的通量计算&#xff08;OpenBoundaryFluxes&#xff09;开边处的速度、水位&#xff08;BoundaryVelocities&#xff09; 其它参数配置模拟结果 简介 SUNTANS中 tidal forcing 算例的全…...

​力扣解法汇总1010. 总持续时间可被 60 整除的歌曲

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣 描述&#xff1a; 在歌曲列表中&#xff0c;第 i 首歌曲的持续时间为 time[i] 秒。 返回其总持…...

利用老毛桃pe启动U盘启动ubuntu.iso,完成ubuntu系统的安装

1.双U盘&#xff0c;一个是老毛桃pe启动盘&#xff0c;可以启动grub4dos&#xff0c;加载了run模块&#xff0c;很好用&#xff08;尤其是对不熟悉grub的小白&#xff09; 2.大容量U盘存放ubuntu-desktop-i386.iso&#xff0c;U盘的格式是ntfs格式&#xff08;其实这个不好&am…...

分享2个教学视频录制的方法!

案例&#xff1a;如何录制教学视频&#xff1f; 【我是一名老师&#xff0c;我想录制一些教学视频发布在网络平台上&#xff0c;但是我不知道如何操作。有没有人知道录制教学视频需要什么工具&#xff1f;如何录制&#xff1f;】 随着在线教育的普及&#xff0c;越来越多的教…...

「SQL面试题库」 No_63 报告的记录 II

&#x1f345; 1、专栏介绍 「SQL面试题库」是由 不是西红柿 发起&#xff0c;全员免费参与的SQL学习活动。我每天发布1道SQL面试真题&#xff0c;从简单到困难&#xff0c;涵盖所有SQL知识点&#xff0c;我敢保证只要做完这100道题&#xff0c;不仅能轻松搞定面试&#xff0…...

【事务】怎么去理解事务?

1、什么是事务&#xff1f; 事务是指作为单个逻辑工作单元执行的一系列操作&#xff0c;这些操作要么全做&#xff0c;要么全不做&#xff0c;是一个不可分割的工作单元。 2、事务具有哪些特性&#xff1f; 一个逻辑工作单元要成为事务&#xff0c;在关系型数据库管理系统中…...

camunda流程变量如何使用

Camunda是一个流程引擎&#xff0c;它支持在流程执行期间存储和操作流程变量。流程变量是一个值或对象&#xff0c;可以与Camunda中的流程实例、任务或执行相关联。 流程变量在Camunda中有很多用途。以下是一些常见的用途&#xff1a; 1、传递数据&#xff1a;流程变量可以用于…...

CMIP6:WRF模式动力降尺度、单点降尺度、统计方法区域降尺度

专题一 CMIP6中的模式比较计划 1.1 GCM介绍 ​ 1.2 相关比较计划介绍 ​ 专题二数据下载 2.1方法一&#xff1a;手动人工 ​ 利用官方网站 2.2方法二&#xff1a;自动 利用Python的命令行工具 ​ 2.3方法三&#xff1a;半自动购物车 利用官方网站 ​ 2.4 裁剪netCDF文件 …...

2023建筑设计师们有哪些好用的AI设计工具?

目前&#xff0c;建筑师要么单独工作&#xff0c;要么团队合作来完成设计过程&#xff0c;这可能需要数月甚至数年的时间。设计和准备用于开发的建筑物可能需要很长时间&#xff0c;有时甚至数年。一些比较繁琐的步骤可以自动化&#xff0c;但整个过程仍然需要大量的人工和时间…...

mysql主从复制与读写分离

mysql主从复制与读写分离 MySQL主从复制是一种常见的数据复制技术&#xff0c;用于将一个MySQL数据库服务器的数据复制到其他服务器上。 单台mysql在安全性&#xff0c;高并发方面都无法满足实际需求 配置多台主从数据库服务器以实现读写分离 读写分离&#xff0c;主数据库的…...

技术控,看这里,一款支持断点调试的数据科学工具

数据科学是一门利用统计学、机器学习、数据挖掘、数据可视化等技术和方法&#xff0c;从数据中提取知识和信息的交叉学科。自上世纪60年代&#xff0c;统计学家John W.Tukey首次提出“数据分析”&#xff08;Data Analysis&#xff09;的概念起&#xff0c;数据科学已历经了几十…...

论文导读 | 大语言模型上的精调策略

随着预训练语言模型规模的快速增长&#xff0c;在下游任务上精调模型的成本也随之快速增加。这种成本主要体现在两方面上&#xff1a;一&#xff0c;计算开销。以大语言模型作为基座&#xff0c;精调的显存占用和时间成本都成倍增加。随着模型规模扩大到10B以上&#xff0c;几乎…...

进阶自动化测试,这3点你一定要知道的...

自动化测试指软件测试的自动化&#xff0c;在预设状态下运行应用程序或系统&#xff0c;预设条件包括正常和异常&#xff0c;最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。 自动化测试框架一般可以分为两个层次&#xff0c;上层是管理整个自动化测试的开发&a…...

网络编程套接字API

一. linux平台 1.创建套接字 成功返回文件描述符&#xff0c;失败返回-1 int socket (int __domain, int __type, int __protocol) ;2.套接字绑定IP地址和端口号 成功返回0&#xff0c;失败返回-1 int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);3.开启…...

数字藏品的价值和意义

2022年以来&#xff0c;数字藏品概念在国内火热起来。从年初的《关于防范 NFT相关金融风险的倡议》到8月份央行数字货币 DCEP的正式面世&#xff0c;从中国香港首个“NFT”艺术品在香港拍卖市场成交到国内多家互联网大厂推出数字藏品平台&#xff0c;越来越多的企业开始试水数字…...

Unity物理系统脚本编程(上)

一、获取刚体组件Rigidbody 当一个物体挂载了刚体时&#xff0c;即可在脚本中获取该物体的刚体组件&#xff0c;代码如下 Rigidbody rigid; void Start() { rigidGetComponent<Rigidbody>(); } 一般将刚体变量命名为rigid并定义为一个字段&#xff0c;方便复用. 二、施…...

Java基础(十七)File类与IO流

1. java.io.File类的使用 1.1 概述 File类及本章下的各种流&#xff0c;都定义在java.io包下。一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录&#xff08;俗称文件夹&#xff09;&#xff0c;与平台无关。&#xff08;体会万事万物皆对象&#xff09;File 能新…...

跑步课程导入能力,助力科学训练

HUAWEI Health Kit为开发者提供用户自定义的跑步课程导入接口&#xff0c;便于用户在华为运动健康App和华为智能穿戴设备上查看来自生态应用的训练课表&#xff0c;开启科学、适度的运动训练。 跑步课程导入能力支持生态应用在获取用户的华为帐号授权后&#xff0c;将跑步课程…...

MySQL---8、创建和管理表

1、基础知识 1.1 一条数据存储的过程 创建数据库-->确认字段-->创建数据表-->插入数据1.2 标识符的命名规则 1、数据库名、表名不得超过30个字符&#xff0c;变量名限制为29个 2、必须只能包含A-Z、a-z、0-9,、_共63个字符 3、数据库名、表名、字段名等对象名中间不…...

图像分类简单介绍

文章目录 图像分类简单介绍什么是图像分类图像分类的背景和意义传统的图像分类方法基于深度学习的图像分类方法总结 图像分类简单介绍 图像分类是计算机视觉领域的一个基本任务&#xff0c;其目标是将输入的图像分配给某个预定义的类别&#xff08;即标签&#xff09;。在本教…...

很多博主用Markdown格式文章?直呼真不错!

概述 Markdown 是一种轻量级标记语言&#xff0c;它可以使我们专注于写作内容&#xff0c;而不用过多关注排版&#xff0c;很多博主、作家等都用它来撰写文章~ 本文将给各位小伙伴介绍 Markdown 语法的使用&#xff0c;本篇文章索奇就是用的纯 markdown 语法来写的~ 标题 一级…...

【2023/05/07】汇编语言

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第2天。 Share Stray birds of summer come to my window to sing and fly away. And yellow leaves of autumn,which have no songs,flutter and full there with a sigh. 译文&#xff1a; 夏天的鸟&…...

AI 生成第3篇测试文章:怎么编写测试计划?

背景 在软件开发过程中&#xff0c;测试是十分重要的环节&#xff0c;测试计划是测试的基础和重要的组成部分。一个完善的测试计划能够指导测试工作&#xff0c;明确测试范围和要求&#xff0c;提高测试效率&#xff0c;保证软件质量和可靠性。本文将从测试计划的定义、编写步…...

怎么洗稿容易过稿-在线洗稿软件

自媒体洗稿软件 即使您是一位优秀的自媒体写作人员&#xff0c;也难免遇到让人头疼的撰写问题&#xff0c;例如无法处理大量原始文本、需要手动删除冗余信息、缺少时间针对每篇文章进行深入修改等问题。但是&#xff0c;现在有了我们的一款自媒体洗稿软件&#xff0c;您再也不需…...

图书馆客流人数统计分析系统方案

智慧客流人数统计分析系统可以帮助图书馆管理者更好地管理人群流量。系统能够自动统计区域内的人流量高峰期&#xff0c;并通过数据分析提供更加合理的管控&#xff0c;从而提区域内人群流动性&#xff0c;避免拥堵的情况。 AI客流视觉监控 客流量管控分析系统意义 讯鹏客流量管…...

linux命令之crontab详解

crontab 提交和管理用户的需要周期性执行的任务 更多linux命令详解&#xff1a;linux命令在线工具 补充说明 crontab命令 被用来提交和管理用户的需要周期性执行的任务&#xff0c;与windows下的计划任务类似&#xff0c;当安装完成操作系统后&#xff0c;默认会安装此服务工…...

浅谈一下接口工具(jmeter、postman、swagger等)

一、接口都有哪些类型&#xff1f; 接口一般分为两种&#xff1a;1.程序内部的接口 2.系统对外的接口 系统对外的接口&#xff1a;比如你要从别的网站或服务器上获取资源或信息&#xff0c;别人肯定不会把 数据库共享给你&#xff0c;他只能给你提供一个他们写好的方法来获取…...

面试题:react、 vue中的key有什么作用? (key的内部原理)

面试题:react、 vue中的key有什么作用? &#xff08;key的内部原理) 1.虚拟DOM中key的作用: key是虚拟DOM对象的标识&#xff0c;当状态中的数据发生变化时&#xff0c;Vue会根据【新数据】生成【新的虚拟DON】,随后Vue进行【新虚拟DOM】与【旧虚拟DOM】的差异比较&#xff0…...

C++之继承

目录 一、继承的概念及定义 1.1继承的概念 1.2继承的定义 1.2.1继承的格式 1.2.2继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 4.派生类的默认成员函数 五、继承与友元 六、继承与静态成员 七、菱形继承及菱形虚拟继承 7.1菱形继承的问…...