DBA(Database Administrator)数据库运维-mysql

一、开篇

1、版本选择

1、企业版

2、社区版

MySQL社区版则是由分散在世界各地的MySQL开发者、爱好者以及用户参与开发与测试的,包括软件代码的管理、测试工作,也是他们在负责。社区也会设立BUG汇报机制,收集用户在使用过程中遇到的BUG情况,相比于企业版,社区版的开发及测试环境没有那么严格。

3、选哪个

mysql是成熟产品,企业版和社区版在性能方面区别不大,对于我们学习而言,社区版即可。它们的区别可以如下了解

  • 企业版对代码的管理、测试更严格、稳定性更好
  • 企业版不遵循GPL开源协议,而社区版遵循,可以免费用
  • 企业版可以购买额外的收费服务,如7*24的技术支持,有钱任性。
  • 社区版的安全性,稳定性,无法像企业版有及时的维护、技术支持。

2、下载地址

Mysql安装包下载
https://downloads.mysql.com/archives/community/
http://mirrors.sohu.com/mysql/

二、部署安装

1、安装全流程

# 确认时间正确
crontab -l


1 .准备好包

2. 解压缩,配置PATH
[root@tech-db-51 /opt]## 常见做法,做软连接,便于二进制包的升级,后续的使用路径,用的都是软连接
[root@tech-db-51 /opt]#ln -s /opt/mysql-5.7.28-linux-glibc2.12-x86_64   /opt/mysql

3. 配置PATH
echo 'export PATH=$PATH:/opt/mysql/bin'  >> /etc/profile
source /etc/profile

4. 验证mysql版本
[root@tech-db-51 /opt]#mysql -V 

5.删除mariadb的依赖,删除默认的配置文件 
yum remove mariadb-libs.x86_64  -y
rm -f /etc/my.cnf

6.装mysql5.7特有的依赖包
yum install libaio-devel -y

7. 创建数据目录,
# 准备mysql的数据目录,授权用户
useradd -s /sbin/nologin -M mysql
mkdir -p /linux0224/
mkdir -p /linux0224/mysql_3306/

# 授权
chown -R mysql.mysql /linux0224/
chown -R mysql.mysql /linux0224/mysql_3306/
chown -R mysql.mysql /opt/mysql*

#检查
[root@tech-db-51 /opt]#ls -ld  /linux0224 /linux0224/mysql_3306/  /opt/mysql*

 8.此时自建的mysql目录,没有输数据,mysql 无法使用,初始化生成mysql默认库的数据源 ,用户等信息,即可启动
# mysqld 服务端命令,启动,初始化,都用的这个
# --basedir  mysql二进制命令装再哪了,主程序目录
# --datadir 数据目录初始到哪

mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/linux0224/mysql_3306/

2、配置文件

初始化完毕后,有配置文件即可正确启动,告诉 my.cnf
mysqld的数据源目录在哪,日志写入到哪等

# /etc/my.cnf 默认mysql会去读这个,不指定,也读这个
# [mysqld] 服务端会读取的配置
# [mysql]  在机器本地,执行mysql命令,客户端读取的配置 
# socket 本地进程套接字文件,用于mysql客户端再本地区链接

cat >/etc/my.cnf <<'EOF'

[mysqld]
port=3306
user=mysql
basedir=/opt/mysql
datadir=/linux0224/mysql_3306/
socket=/tmp/mysql.sock

[mysql]
socket=/tmp/mysql.sock
EOF

3、启动脚本

复制自带脚本即可

[root@tech-db-51 /linux0224/mysql_3306]#cp /opt/mysql/support-files/mysql.server   /etc/init.d/mysqld

[root@tech-db-51/linux0224/mysql_3306]#systemctl daemon-reload
[root@tech-db-51 /linux0224/mysql_3306]#systemctl status mysqld

4、登陆mysql

# 启动即可
[root@tech-db-51 /linux0224/mysql_3306]#systemctl start mysqld
[root@tech-db-51 /linux0224/mysql_3306]#mysql 

三、Mysql的多实例管理

适用于资金紧张的公司和并发量不大的业务

1、创建数据目录

mkdir -p  /linux0224/mysql_3307
mkdir -p  /linux0224/mysql_3308
chown -R mysql.mysql /linux0224

2、初始化两个实例

mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/linux0224/mysql_3307
mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/linux0224/mysql_3308
# 都会默认创建一个账户,链接权限
root 空密码 只允许再localhost登录

3、额外创建俩实例的配置文件

1、3307

cat >/etc/mysql_3307.cnf <<'EOF'
[mysqld]
port=3307
user=mysql
basedir=/opt/mysql/
datadir=/linux0224/mysql_3307/
socket=/linux0224/mysql_3307/mysql.sock
log_error=/linux0224/mysql_3307/mysql.log
EOF

2、3308

cat >/etc/mysql_3308.cnf <<'EOF'

[mysqld]
port=3308
user=mysql
basedir=/opt/mysql/
datadir=/linux0224/mysql_3308/
socket=/linux0224/mysql_3308/mysql.sock
log_error=/linux0224/mysql_3308/mysql.log
EOF

3、socket解释-链接mysql有俩种方式

1. 通过远程网络的链接形式,效率很低,网络波动

ip:port   10.0.0.51:3306
mysql -uroot -p -h10.0.0.51  -P3306

2.、通过再机器本地,进程套接字文件去链接,直接是基于内存的链接

程序和程序之间,直接走内存数据,效率极高,遇见一些软件的部署,走socket链接
如nginx的反向代理配置

proxy_pass  ip:port;
proxy_pass  unxi:socket;

/linux0224/mysql_3307/mysql.sock

# -S  等于 -h -P 

# 链接3307的进程
# 能看懂 程序链接的2方式
# 
mysql -uroot -p密码 -S  /linux0224/mysql_3307/mysql.sock
mysql -uroot -p密码 -S  /linux0224/mysql_3306/mysql.sock
mysql -uroot -p密码 -S  /linux0224/mysql_3308/mysql.sock

4、设置Mysql多实例的密码

posted @   lipga  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示