三、MySQL 数据库安装集

news2024/11/18 3:41:53

一、CentOS—YUM

1. MySQL—卸载

# 1、查看存在的`MySQL`。
rpm -qa | grep -i mysql
rpm -qa | grep mysql

# 2、删除存在的`MySQL`。
rpm -e –-nodeps '包名'

# 3、查找存在的`MySQL目录`。
find / -name mysql

# 4、删除存在的`MySQL目录`。
rm -rf '目录'

# 5、删除存在的`MySQL配置文件`。
rm -rf '/etc/my.cnf'

2. MySQL—安装

  • MySQL 安装
  • 报错 mysqld_safe error: log-error set to ‘/var/log/mariadb/mariadb.log‘
  • 报错 mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object fil
  • 报错 error while loading shared libraries: libncurses.so.5: cannot open shared object file
  • chkconfig: command not found
  • sysv-rc-conf
  • 解决apt-get install E: 无法定位软件包,则添加添加镜像源
sysv-rc-conf mysqld on
sysv-rc-conf --list

3. MySQL—启动

# 1、切换用户。
su mysql

# 2、启动。
service mysql start

# 3、查看运行状态。
systemctl status mysqld

cd /usr/app/mysql-8.0.22-el7-x86_64
/etc/init.d/mysql start
mysql -uciic -pciic

二、MySQL—Docker

  • 用docker创建MySQL无法访问的问题
  • Docker安装mysql并挂载目录到宿主机
  • Docker安装MySQL映射本地目录
  • Docker安装MySQL8.0

1. 前置准备

# 1、创建`mysql/conf配置目录`、`mysql/data数据目录`。
mkdir -p /root/mysql/conf /root/mysql/data

# 2、目录授权。
chmod -R 755 /root/mysql/

# 查看`MySQL`各个文件的位置。
cat /etc/mysql/mysql.cnf
cat /etc/mysql/my.cnf

[mysqld]
# 设置包含`运行的named守护进程`的`进程ID`的文件位置。
pid-file        = /var/run/mysqld/mysqld.pid
# 通讯协议的载体。
socket          = /var/run/mysqld/mysqld.sock
# 数据库文件所在目录。
datadir         = /var/lib/mysql
# 错误日志。
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

2. 拉取镜像

# 1、搜索`MySQL镜像`。
docker search mysql

# 2、拉取`MySQL镜像`。
#docker pull mysql
#docker pull mysql:8.0.16

#docker pull mysql:5.7	
docker pull mysql:5.7.29

3. 创建并启动容器

  • 拷贝默认配置文件。
# 1、启动一个`MySQL测试容器`。
docker run -id \
	--name 'mysql_test' \
	-p 3307:3306 \
	-e MYSQL_ROOT_PASSWORD=['123456'] \
	'mysql:版本号' \ 
	&& docker logs -f 'mysql_test'

# 2、进入容器。
docker exec -it ['mysql_test'] /bin/bash	
exit

# 3、拷贝容器内`mysql.cnf配置文件`到宿主机。
docker cp 'mysql_test:/etc/mysql/conf.d/' '/root/mysql/conf/'
docker cp 'mysql_test:/etc/mysql/mysql.cnf' '/root/mysql/conf/' 
docker cp 'mysql_test:/etc/mysql/mysql.conf.d/' '/root/mysql/conf/' 
 
# 4、拷贝容器内`data数据目录`到宿主机。
docker cp 'mysql_test:/var/lib/mysql/' '/root/mysql/data/'

# 5、拷贝容器内`错误日志`到宿主机。
docker cp 'mysql_test:/var/log/mysql/error.log' '/root/mysql/'

# 6、删除`MySQL测试容器`。
docker rm -f 'mysql_test'

3.1 创建正式容器

# 1、切到`mysql/目录`。 
cd /root/mysql/

# 2、查看当前目录。
[root@qs mysql]# echo $PWD
/root/mysql

# 3、创建正式容器。
docker run -d \
	--name '容器名称' \
	-p 3306:3306 \
	-v $PWD/conf/conf.d/:/etc/mysql/conf.d/ \
	-v $PWD/data/mysql/:/var/lib/mysql/ \
	-e MYSQL_ROOT_PASSWORD=['123456'] \
	['镜像ID']

# 4、修改为开机自启动。
docker update --restart=always ['容器ID']
参数说明
-p 3306:3306将宿主机 3306端口,映射到容器内 3306端口
-e MYSQL_ROOT_PASSWORD=123456追加启动参数,指定 MySQL密码

4. MySQL—启动两个容器

# 1、启动`Master容器`。
docker run -d \
	--name 'master' \
	-p 3307:3306 \   
	-v '/root/mysql/master/mysql.cnf:/etc/mysql/mysql.cnf' \ 
	-v '/root/mysql/master/data/:/var/lib/mysql/' \ 
	-v '/root/mysql/master/error.log:/var/log/mysql/error.log' \ 
	-e MYSQL_ROOT_PASSWORD=['123456'] \ 
	['镜像ID']

# 2、启动`Slave容器`。
docker run -d \
	--name 'slave' \
	-p 3308:3306 \   
	-v '/root/mysql/slave/mysql.cnf:/etc/mysql/mysql.cnf' \ 
	-v '/root/mysql/slave/data/:/var/lib/mysql/' \ 
	-v '/root/mysql/slave/error.log:/var/log/mysql/error.log' \ 
	-e MYSQL_ROOT_PASSWORD=['123456'] \ 
	['镜像ID']

5. 启动 MySQL-8,并配置忽略大小写

docker run -d \
	--name 'mysql_8' 
	-p 3306:3306 \
	-e MYSQL_ROOT_PASSWORD=['123456'] \
	-v '/home/mysql/':'/var/lib/mysql' \
	['镜像ID'] \
	--lower_case_table_names=1

6. 登陆容器

# 1、进入容器。
docker exec -it ['容器ID'] /bin/bash	

# 2、登陆MySQL。
mysql -u root -p123456

# 3、退出MySQL。             
quit    

# 4、退出容器。                           
exit

# 5、查看`MySQL容器IP`。                                
docker inspect ['容器ID']
              
# 6、配置`MySQL容器IP`。

三、MySQL—常用操作

# 1、连接。
mysql -uroot -p123456

# 2、远程连接。
mysql -u root -p 123456 -h 192.168.0.1 -P 3306
mysql -h[192.168.0.11] -P[3306] -D[test] -uroot -p123456 


# 3、查看版本
SELECT VSESION();

1. 修改—默认端口

# 查看`MySQL`全局参数`默认端口`
show global variables like 'port';

# 修改`默认端口`,加`port端口`配置,修改完成后重启服务。
vim /etc/my.cnf
port=3309

2. 修改—密码

ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

2.1 忘记密码一

# 1、配置`my.ini文件`的`[mysqld]字段下`加入如下配置。
skip-grant-tables

# 2、重启`MySQL服务`(现在不需要密码即可登录数据库)。
service mysql restart

# 3、再次登录`MySQL`。
mysql>use mysql;
mysql>UPDATE user SET password=password('新密码') WHERE User='root';
mysql>flush privileges;

# 4、修改之后,再去掉`my.ini文件`的`skip-grant-tables参数`,重启`MySQL服务`即可。

2.2 忘记密码二

# 不使用上面的方法,而是通过非服务方式加`skip-grant-tables参数`,运行MySQL来修改密码。

# 1、停止`MySQL服务`。

# 2、打开命令行窗口,在`bin目录下`使用`mysqld-nt.exe启动`,即在命令行窗口执行。 
mysqld-nt --skip-grant-tables

# 3、然后另外打开一个命令行窗口,登录`MySQL`,此时无需输入`密码`即可进入。

# 4、按以上方法修改好密码后,关闭命令行运行的窗口,此时即`关闭了MySQL`。
# 如果发现`MySQL仍在运行`的话,可以结束掉对应进程来关闭。

# 5、启动`MySQL服务`。

3. 修改—不区分大小写

-- 查询`大小写配置`。
SHOW GLOBAL VARIABLES LIKE '%lower_case%';

-- 查询`是否区分大小写表名`。
SHOW VARIABLES LIKE 'LOWER_CASE_TABLE_NAMES';

  • lower_case_file_system=off:说明大小写是敏感的。
    注意:该变量不可以修改,只是说明当前操作系统对于 MySQL 的配置是否大小写敏感。
  • lower_case_table_names=0:是对数据表名不做转换。
    如果是1,则会将数据表转换为小写,然后在进行操作。
  1. LOWER_CASE_TABLE_NAMES=0:表名存储为给定的大小写,比较时区分大小写的。
  2. LOWER_CASE_TABLE_NAMES=1:表名存储在磁盘是小写的,比较时不区分大小写。
  3. LOWER_CASE_TABLE_NAMES=2:表名存储为给定的大小写,比较时是小写的。
    在这里插入图片描述

  • vim /etc/mysql/my.cnf
docker exec -it 'mysql_8' /bin/bash	

docker cp 'mysql_8:/etc/mysql/my.cnf' '/root/mysql/my.cnf'

docker cp '/root/mysql/my.cnf' 'mysql_8:/etc/mysql/my.cnf' 

# 修改`不区分大小写`。
# vi /etc/mysql/mysql.conf.d/mysqld.cnf
vi /etc/my.cnf

------------------------------
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
#log-error      = /var/log/mysql/error.log
# By default we only accept connections from localhost
#bind-address   = 127.0.0.1
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 修改`不区分大小写`。
lower_case_table_names=1
------------------------------

# 重启MySQL。
service mysql restart

5. MySQL—导入导出

# 导出。
mysqldump -uroot -p -h192.168.100.101 -P3307 --databases sell > sell_bak.sql

# 导入(先修改`sell_bak.sql中的库名`)。
mysql -uroot -p -h192.168.100.101 -P3308 < sell_bak.sql

四、MySQL—异常

1. 3306端口已经绑定。

  • Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use

# 1、查看`3306端口`占用情况。
sudo netstat -nlpt | grep 3306

# 2、停掉`MySQL服务`。
sudo service mysql stop

2. ONLY_FULL_GROUP_BY

  • ONLY_FULL_GROUP_BY

五、MySQL客户端—安装

  • MySQL 下载
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

# 查看是否有安装过MySQL。
rpm -qa | grep mysql

# 卸载旧的版本。
rpm -e --nodeps ['软件名']

# 安装`.rpm包`(`--nodeps --force`强制安装)。
# 如果下载的是`.tar文件`需要先解压,如果是`.rpm文件`则可以直接安装。
rpm -ivh ['rpm包的名字'] --nodeps --force

mysql --help
# 检测`MySQL`是否已经启动。
#service mysqld status

# 连接。
mysql -h[192.168.0.11] -P[3306] -D[test] -uroot -p123456 
  • 安装成功。在这里插入图片描述

  • error while loading shared libraries: libtinfo.so.5: cannot open shared object file
# 查找存在的`libtinfo`包。
find / -name 'libtinfo*'
# 找到存在的包。
#`/usr/lib64/libtinfo.so.6.1`

# 创建软链接。
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【西安、成都】山洪预警模拟与洪水危险性评价技术及2023年典型地区洪水淹没及损失分析复盘

气候变化背景下&#xff0c;极端天气导致的洪水事件将更加频发。快速城市化对流域下垫面的改变&#xff0c;及人类活动向洪泛区的扩张。二者共同使得全世界多数人类活动高度聚集区的洪水风险增加。洪水淹没危险性&#xff08;各种年遇型洪水淹没&#xff09;是洪水损失评估、风…

mathematica线性代数基础和希腊字母输入

在公式推导的过程中最常使用的就是线性代数&#xff1a; mathematica提供了线性代数的计算模块&#xff0c;不过需要熟悉一下语法&#xff0c;最好的方式就是看文档。 文档的链接 在本地的帮助搜索栏输入howto/DoLinearAlgebra&#xff0c;或者在网页输入链接 How to| 进行线…

老码农的运行时漫谈

写程序离不开运行时&#xff0c;但是有很多伙伴却并没有搞清楚运行时到底是什么。运行时的概念之所以容易被混淆&#xff0c;是因为运行时有两层不同的含义&#xff1a;run time 和 runtime&#xff0c;先贤们在翻译的时候可能忽略了中间的空格&#xff0c;导致运行时一词代表了…

selenium案例之RAM 用户登录 aliyun

文章目录 0x00 Selenium0x01 整体流程 思路1.1 打开浏览器并且访问 登录页面 url: https://signin.aliyun.com/login.htm#/main1.2 定位 "用户名" input 和 "下一步" button 点击下一步1.3 定位 "密码" input 和 "登录" button 点击登…

【C语言】自定义类型:结构体

前言 今天这篇文章&#xff0c;我们来学习自定义类型中的结构体类型 之前我们就初步了解过结构体类型&#xff0c;知道他是用来描述复杂类型的 像之前的short、int、long之类的称为C语言的内置类型 而如结构体、枚举、联合类型称为自定义类型 初识结构体 在正式学习前&…

Postgres入门:三种免费且简单的方法

大家好&#xff0c;开发者们&#xff01;今年大约有9万人参与了Stack Overflow的调查。令人印象深刻的是&#xff0c;Postgres被评为第一数据库。此外&#xff0c;DB Engines还将PostgreSQL列为全球增长最快的数据库之一。这对我们意味着什么呢&#xff1f;很明显&#xff0c;我…

数学思维导图怎么画?别错过这几简单绘制方法

数学思维导图怎么画&#xff1f;数学思维导图可以帮助我们更好地组织和理解各种数学概念。不仅是学生和教师可以受益&#xff0c;数学思维导图也可以在研究和工作中发挥作用。这种工具可以帮助你清晰地表示各种数学概念和关系&#xff0c;并将它们可视化&#xff0c;以便更容易…

LeetCode.双指针(三)

例题一 一、题目 两数之和 II - 输入有序数组 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xf…

思维导图怎么制作?了解一下这几种制作方法

思维导图怎么制作&#xff1f;思维导图是一种非常有效的组织思考和表达想法的工具。它可以帮助人们更好地理解和记忆信息&#xff0c;并且可以通过可视化的方式帮助人们更好地理解复杂的关系和概念。制作思维导图有多种方法&#xff0c;例如手绘、使用电子表格或专业的思维导图…

《软件方法》强化自测题-分析(4)

DDD领域驱动设计批评文集 通过做强化自测题加入“软件方法建模师”群 《软件方法》各章合集 按照业务建模、需求、分析、设计工作流考察&#xff0c;答案不直接给出&#xff0c;可访问自测链接或扫二维码自测&#xff0c;做到全对才能知道答案。 知识点见《软件方法》&…

不同企业如何选择合适的CRM系统?

市场上的CRM系统千差万别&#xff0c;如何选到适合的CRM系统&#xff1f;很多企业凭借感觉盲目选型&#xff0c;结果上线后发现CRM系统功能不符合需求。这就好比买衣服&#xff0c;不试穿就买回家&#xff0c;结果发现尺码不合适&#xff0c;还不能退换。下面说说企业如何进行C…

一起学SF框架系列7.4-spring-AOP-AOP代理创建

AOP的BeanDefinition加载后&#xff0c;Spring提供了自动代理机制&#xff0c;让容器自动根据目标bean生成AOP代理bean&#xff0c;本文讲述具体如何实现。 基本机制 Spring的启动过程中&#xff0c;在bean实例化前后、初始化前后均提供了外部介入处理机制&#xff08;详见“…

三、SQLServer 数据库安装集

一、Docker 安装 Docker下安装SqlServer2019Docker 安装 SQLServer 1. 创建容器 前置准备 # 1. 创建主机映射目录 mkdir -p /root/sqlserver # 2. 修改主机映射目录权限 chown -R 10001:0 /root/sqlserver创建容器 # 1、拉取镜像。 #sudo docker pull mcr.microsoft.com/mssql/…

超越函数界限:探索JavaScript函数的无限可能

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 &#x1f4da; 前言 &#x1f4d8; 1. 函数的基本概念 &#x1f4df; 1.1 函数的定义和调用 &#x1f4df; 1.2 …

用加持了大模型的 Byzer-Notebook 做数据分析是什么体验

Byzer-Notebook 是专门为 SQL 而研发的一款 Web Notebook。他的第一公民是 SQL&#xff0c;而 Jupyter 则是是以 Python 为第一公民的。 随着 Byzer 引擎对大模型能力的支持日渐完善&#xff0c; Byzer-Notebook 也在不自觉中变得更加强大。我和小伙伴在聊天的过程中才发现他已…

TCP定制协议,序列化和反序列化

目录 前言 1.理解协议 2.网络版本计算器 2.1设计思路 2.2接口设计 2.3代码实现&#xff1a; 2.4编译测试 总结 前言 在之前的文章中&#xff0c;我们说TCP是面向字节流的&#xff0c;但是可能对于面向字节流这个概念&#xff0c;其实并不理解的&#xff0c;今天我们要介…

QT:绘图事件QPainter

绘图事件QPainter 绘图事件&#xff08;需要重写的函数&#xff09;&#xff1a;paintEvent 声明一个画家对象 QPainter painter(this) 指定绘图设备 画线&#xff0c;画圆&#xff0c;画矩形&#xff0c;画文字 可设置画笔&#xff0c;画刷#include <QPainter> ...... …

剑指 Offer 48. 最长不含重复字符的子字符串(C++实现)

剑指 Offer 48. 最长不含重复字符的子字符串https://leetcode.cn/problems/zui-chang-bu-han-zhong-fu-zi-fu-de-zi-zi-fu-chuan-lcof/ dp 注意&#xff1a;缩小 不含重复字符子串 时的写法 dp_1 min(i - charToIndex[s[i]], dp_0 1); int lengthOfLongestSubstring(string s…

Autosar MCAL-S32K324 CAN-FD配置及使用

文章目录 前言配置MCAL CANCAN Controller配置CAN FD波特率配置Ram block关于MailBox 代码中使用CAN FD报文发送和接收CAN FD报文接收CAN FD报文发送 总结 前言 在之前的文章中&#xff0c;介绍了标准CAN的MCAL配置&#xff0c;在此基础上&#xff0c;扩展为CAN-FD就会容易很多…

6.RocketMQ之消费索引文件ConsumeQueue

功能&#xff1a;作为CommitLog文件的索引文件。 本文着重分析为consumequeue/topic/queueId目录下的索引文件。 1.ConsumeQueueStore public class ConsumeQueueStore {protected final ConcurrentMap<String>, ConcurrentMap<Integer>, ConsumeQueueInterface…