简介与安装
NoSQL
RDBMS
版本
安装方式
二进制安装,源码安装
体系结构
CS模型
TCP/IP
socket
mysql master thread
实例
mysqld 的程序构成
连接层 协议、验证、链接线程
SQL层 语法语义、权限、解析、优化、执行、日志记录
存储引擎层:存取磁盘数据

逻辑结构:库、表、属性、字符集和校对规则
表:表明、字段、记录、元数据
物理存储结构
库:就是一个目录
表:myisam、frm、myd、myi
innodb :frm ibd
innodb 存储引擎表
段 区 页


MySQL基础管理
用户权限

create user oldboy@'10.0.0.%' identified by '';
drop user oldboy@'10.0.0.%' ';
alter user oldboy@'10.0.0.%' identified by '123
select user,host from mysql.user; grant all on *.* to root@'10.0.0.%';
revoke drop,delete,insert,update from root@'10.0.0.%';
show grants for root@'10.0.0.%';

参数--root忘记密码时使用socket方式登录修改

--skip-grant-tables
--skip-networking mysql -uroot -p -S /tmp/mysql.sock --socket链接方式
mysql -uroot -p -h192.168.16.174 -P3306 --tcp/IP链接方式
-P必须与-h 同时使用
-e 参数:免交互方式使用数据库,如:
mysql -uroot -p123 -e"select user,host fom mysql.user;"

< 导入脚本数据

mysql -uroot -p <word.sql;

启动方式
service mysqld start --> ./mysql.server start -->mysqld_safe
./bin/mysqld_safe & --> mysqld_safe --> mysqld
systemd :systemctl start mysqld

mysql --skip-grant-tables --skip-networking

初始化配置:预编译、配置文件、命令行

作用:控制MySQL的启动、
配置文件:/etc/my.conf
命令行:仅限于mysqld_safe 和mysqld,临时维护使用

初始化配置文件:
初始化配置文件顺序,有重复的以最后一个为准
mysqld --help --verbose|grep my.cnf
但指定的除外:
--default-file=/etc/my.cnf

my.cnf

[mysqld]
user=mysql
basedir=/u02/app/mysql
datadir=/u02/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock [mysql]
socket=/tmp/mysql.sock
prompt=3306[\\d]> #[mysqld_safe]
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid

标签类型:客户端、服务端
服务端标签:

【mysqld】
【mysql_safe】
【server】

客户端标签:

【mysql】
【mysqldump】
【client】

服务端例子:

【mysqld】
user=mysql
basedir=/u02/app/mysql
datadir=/u02/data/mysql
socket=/tmp/mysql.sock
server_id=6 ----5.7版本必须字段,范围1-65535
port=3306
log_err=/u02/mysql/data/mysql/mysql..log

说明:socket=/tmp/mysql.sock可以任意指定如:socket=/etc/mysql.sockaaa

重启数据库后,再次登录时需要指定

mysql -uroot -p -S socket=/etc/mysql.sockaaa

service mysqld stop
mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
报错原因:数据库没起,或者指定socket文件错误
netstat -lnp|grep 3306
system start mysqld

客户端例子:

【mysql】
socket=/tmp/mysql.sock
prompt=3306[\\d]>
#user=root
#passwd=123 说明:prompt=3306[\\d]> 用于显示登录后的路径
如此时显示 3306[(none)]>
修改prompt=[\\d]>
此时显示 [(none)]>
修改 prompt=mysql>
此时显示 mysql>

多实例应用
1、准备多个目录

mkdir -p /u02/data/330{7,8,9}/data 

2、生成配置文件

cat >/u02/data/3307/my.cnf<<zfd
[mysqld]
basedir=/u02/app/mysql
datadir=/u02/data/3307/data
socket=/u02/data/3307/mysql.sock
port=3307
log_err=/u02/data/3307/mysql.log
serve_id=7
log_bin=/u02/data/3307/mysql-bin
zfd cat >/u02/data/3308/my.cnf<<zfd
[mysqld]
basedir=/u02/app/mysql
datadir=/u02/data/3308/data
socket=/u02/data/3308/mysql.sock
port=3308
log_err=/u02/data/3308/mysql.log
serve_id=8
log_bin=/u02/data/3308/mysql-bin
zfd cat >/u02/data/3309/my.cnf<<zfd
[mysqld]
basedir=/u02/app/mysql
datadir=/u02/data/3309/data
socket=/u02/data/3309/mysql.sock
port=3309
log_err=/u02/data/3309/mysql.log
serve_id=9
log_bin=/u02/data/3309/mysql-bin
zfd

  

3、初始化三套数据

mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --datadir=/u02/data/3307/data --basedir=/u02/app/mysql --pid-file=/u02/data/3307/data/zhangfd.pid
mysqld --initialize-insecure --user=mysql --datadir=/u02/data/3308/data --basedir=/u02/app/mysql
mysqld --initialize-insecure --user=mysql --datadir=/u02/data/3309/data --basedir=/u02/app/mysql

4、system管理多实例

cd /etc/systemd/system
cp mysqld.service mysqld3307.service
cp mysqld.service mysqld3308.service
cp mysqld.service mysqld3309.service
修改各个service :ExecStart=/u02/app/mysql/bin/mysqld --defaults-file=/u02/data/3307/my.cnf

使用service sshd start 方式启停服务的设置待解决,因为系统不能使用systemctl命令来管理服务*******

5、授权

chown -R mysql.mysql /u02/data/*

  

6、启动

systemctl start mysql3307.service
systemctl start mysql3308.service
systemctl start mysql3309.service
netstat -lnp|grep 330

  

最新文章

  1. $是对string.Format的简化
  2. 用C语言计算圆的面积~!!!!!!!
  3. Android开发之BroadcastReceiver
  4. systemtap 列出所有linux 内核模块与相关函数0
  5. win10下python2与python3以及pip共存
  6. [BZOJ1016] [JSOI2008] 最小生成树计数 (Kruskal)
  7. Wxpython入门
  8. 查询当前局域网下所有IP和物理网卡地址
  9. TensorFlow 学习资料
  10. 搭建Java后台
  11. 通俗易懂讲解happens-before原则
  12. js-jquery-插件开发(一)
  13. 20145330 《网络对抗》PC平台逆向破解:注入shellcode 和 Return-to-libc 攻击实验
  14. linux下带有空格的文件怎么删除
  15. js弹出框 -搜索
  16. 如何在 Android 程序中禁止屏幕旋转和重启Activity
  17. vue的数组如何存储数据
  18. device mapper的使用
  19. python类的使用(类定义,构造器,类属性,方法)
  20. pm2命令管理启动的nodejs项目进程

热门文章

  1. wx小程序知识点(一)
  2. java8 base64编码和解码
  3. Java类路径的问题
  4. 51 Nod 1073 约瑟夫环
  5. JS框架_(Laydate.js)简单实现日期日历
  6. javascript学习笔记之DOM
  7. windows 安装使用 Memcached
  8. C++入门经典-例6.3-字符串之未使用字符串结束符“\0”和使用字符串结束符“\0”的区别
  9. Python2.x与Python3.x的主要区别(转)
  10. IDEA打开最近打开的项目以及关闭项目