三、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—安装

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


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

4. 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 端口已经绑定


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

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

2. ONLY_FULL_GROUP_BY


五、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑士梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值