前言:Mysql数据库,知识非常的多,要想学精学通这块知识,估计也要花费和学linux一样的精力和时间。小编也是只会些毛皮,给大家分享一下~
一、MySQL安装
(1)安装方式:
1 、程序包yum安装,下实验一
优点:安装快,简单
缺点:定死了各个文件的地方,太死板
2 、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用(推荐),下实验二
3 、源代码:编译安装,太麻烦
(2)mysql 的程序组成:
Client:
mysql :CLI 交互式客户端程序
mysqldump, mysqladmin...
Server:
mysqld_safe mysql的备份
mysqld
mysqld_multi :多实例
服务器监听的两种socket 地址:
ip socket: 监听在tcp 的3306 端口,支持远程通信
unix sock: 监听在sock 文件上(/tmp/mysql.sock,/var/lib/mysql/mysql.sock) ,仅支持本机通信
实验一:yum源安装MySQL和开启设置服务
1、打开官方网站,上边有各种版本的yum源,找到自己想要的版本设置yum源
https://downloads.mariadb.org/mariadb/repositories/
若上不了网,也可以使用自己光盘里的老版本
2、若不用自己的光盘老版本,要配置yum源,这里我选了10.2的版本
vim /etc/yum.repos.d/along.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgcheck=0
若有其他yum源,加一个enabled=0 先临时关闭,yum clean all 清除缓存,注意:官方给的yum源安装的Maria没有安装相依赖的包,还需自己安装相依赖的包
3、yum安装和开启服务
这里,就直接安装光盘里的老版本了
yum -y install mariadb-server
systemctl start mariadb 开启服务
ss -nutl 打开了3306的tcp端口
查询端口对应的进程信息 lsof -i :3306 或 netstat -tnlp | grep 3306
注意:开启服务后,会多一个mysql的用户,它的家目录:存放数据库,相当于数据库中的每个表
mysql用户是安装包时,执行了个脚本,创建了mysql用户,提示我们要是二进制安装需创建用户
rpm -q --scripts mariadb-server 可以查看这个脚本
4、mysql 运行
发现是root,能查能删,很不安全
还能mysql xxx 匿名登录
5、运行安全脚本
/usr/bin/mysql_secure_installation
实验二:二进制安装mariadb和开启设置服务
注意:安装之前要确保自己系统上没有mariadb服务,有老版本可以先卸掉,删除mysql用户
1、去官网下载自己想要的版本 http://mariadb.org
rpm -qi mariadb 可以查询官网
上传,解包解压缩
rz,tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/
(不像编译安装一样,解包可以放在任何目录,这个二进制安装必须指定在这个目录)
2、cd /usr/local/ 发现mariadb的目录名字不符合要求
ln -s mariadb-10.2.8-linux-x86_64/ mysql 创建软连接也可以改名
3、创建mysql用户
useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql
4、创建修改配置文件
ls support-files/ 包里自带的有配置文件,但地方不对,要放在/etc/mysql/my.cnf
mkdir /etc/mysql
cp support-files/my-huge.cnf /etc/mysql/my.cnf 我们演示一个大的
vim /etc/mysql/my.cnf 修改配置文件
[mysqld]
datadir = /app/mysqldb //指定总目录,必须的
innodb_file_per_table = on //让每一个表数据库都是一个文件,方便管理
skip_name_resolve = on //忽略名字的反向解析,加快速度
5、执行脚本,创建系统数据库
cd /usr/local/mysql 一定要在这个目录下执行脚本,因为脚本写死了
./scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb 执行脚本
完成后就会在/app/mysqldb/ 生成mysql系统数据库
6、把服务脚本复制过去
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld 设置服务在哪个运行级别,在哪个运行级别开启服务
chkconfig --list mysqld
service mysqld start 失败,看失败原因:缺少日志文件,日志文件须有读写权限
7、创建配置文件
mkdir /var/log/mariadb/
touch /var/log/mariadb/mariadb.log
chown mysql /var/log/mariadb/mariadb.log
service mysqld start 开启成功
设置PATH:
vim /etc/profile.d/mysql.sh
PATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysql.sh
8、运行安全初始化脚本,同上实验
mysql_secure_installation
二、mysql基础入门操作
1、命令行交互式命令:mysql
mysql 命令的选项:
-uUSERNAME: 用户名;默认为root
-hHOST: 服务器主机; 默认为localhost
-pPASSWORD :用户的密码; 建议使用-p, 默认为空密码
2、mysql中一些的名词
数据库:database
表:table
索引:index
引擎:engines
列、字段:column
\G:竖着显示
3、SQL 语句:(4大类)
DDL: Data Defination Language 数据定义语言,修改表结构
CREATE(创建), DROP(删除), ALTER(修改表结构)
DML: Data Manipulation Language 数据操作语言,修改表里的数据
INSERT, DELETE, UPDATE(更新数据)
DQL :Data Query Language 数据的查询语言
SELECT 用法多,非常灵活
DCL :Data Control Language 数据控制