三、MySQL 数据库安装集


一、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 --forcemysql --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.hqwc.cn/news/76315.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot里 运用 easyexcel 导出

引入pom <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version> </dependency>运用 import com.alibaba.excel.EasyExcel; import org.springframework.stereotype.Contr…

Qt快速学习(一)--对象,信号和槽

目录 1.Qt概述 1.1 什么是Qt 2.2 手动创建 2.3 pro文件 2.4 一个最简单的Qt应用程序 3 第一个Qt小程序 3.1 按钮的创建 3.2 对象模型&#xff08;对象树&#xff09; 3.3 Qt窗口坐标体系 4 信号和槽机制 4.1 系统自带的信号和槽 4.2 自定义信号和槽 4.3信号槽的拓展 4…

3D医学教学虚拟仿真系统:身临其境感受人体结构和功能

3D医学教学虚拟仿真系统是一种基于虚拟现实技术的教学工具&#xff0c;它可以帮助学生更好地理解和掌握医学知识。这种课件通常包括人体解剖学、生理学、病理学等方面的教学内容&#xff0c;通过三维立体的图像和动画展示&#xff0c;让学生更加直观地了解人体结构和功能。 与传…

【UniApp开发小程序】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】

文章目录 界面效果界面实现工具js页面日期格式化 后端收藏ControllerServicemapper 评论ControllerServiceMapper 商品Controller 阅读Service 界面效果 【说明】 界面中商品的图片来源于闲鱼&#xff0c;若侵权请联系删除 【商品详情】 【评论】 界面实现 工具js 该工…

扩散模型实战(四):从零构建扩散模型

推荐阅读列表&#xff1a; 扩散模型实战&#xff08;一&#xff09;&#xff1a;基本原理介绍 扩散模型实战&#xff08;二&#xff09;&#xff1a;扩散模型的发展 扩散模型实战&#xff08;三&#xff09;&#xff1a;扩散模型的应用 本文以MNIST数据集为例&#xff0c;从…

《HeadFirst设计模式(第二版)》第十一章代码——代理模式

代码文件目录&#xff1a; RMI&#xff1a; MyRemote package Chapter11_ProxyPattern.RMI;import java.rmi.Remote; import java.rmi.RemoteException;public interface MyRemote extends Remote {public String sayHello() throws RemoteException; }MyRemoteClient packa…

使用swoole实现实时消息推送给客户端

一. 测试服务端 //测试服务端public function testServer(){$server new Server(192.168.0.144, 9501, SWOOLE_BASE, SWOOLE_SOCK_TCP);$server->on(request, function ($request, $response) {$response->header(Content-Type, text/plain);$response->end("He…

宝塔部署Java+Vue前后端分离项目经验总结

前言 之前部署服务器都是在Linux环境下自己一点一点安装软件&#xff0c;听说用宝塔傻瓜式部署更快&#xff0c;这次浅浅尝试了一把。 确实简单&#xff01; 1、 买服务器 咋买服务器略&#xff0c;记得服务器装系统就装 Cent OS 7系列即可&#xff0c;我装的7.6。 2、创建…

SpringBoot案例 调用第三方接口传输数据

一、前言 最近再写调用三方接口传输数据的项目&#xff0c;这篇博客记录项目完成的过程&#xff0c;方便后续再碰到类似的项目可以快速上手 项目结构&#xff1a; 二、编码 这里主要介绍HttpClient发送POST请求工具类和定时器的使用&#xff0c;mvc三层架构编码不做探究 pom.x…

每日刷题(翻转+二分+BFS)

食用指南&#xff1a;本文为作者刷题中认为有必要记录的题目 ♈️今日夜电波&#xff1a;凄美地—郭顶 1:10 ━━━━━━️&#x1f49f;──────── 4:10 &#x1f504; ◀️ ⏸ ▶️ ☰…

MyBatis快速入门以及环境搭建和CRUD的实现

目录 前言 一、MyBatis简介 1.MyBatis是什么 2.MyBatis的特点 3.mybatis的作用 4.MyBatis的应用场景 5.MyBatis优缺点 二、相关概念 1.ORM概述 2.常见的ORM框架 3.什么是持久层框架 三、MyBatis的工作原理 1.框架交互 2.工作原理 ​编辑 四、MyBatis环境搭建 1…

Docker容器:docker镜像的创建及dockerfile

Docker容器&#xff1a;docker镜像的创建及dockerfile案例 一.docker镜像的三种创建方法 创建镜像有三种方法&#xff1a;基于现有镜像创建、基于本地模板创建及基于dockerfile创建 1.基于现有镜像创建 1.1 启动镜像 #首先启动一个镜像&#xff0c;在容器里做修改 docker …