Mysql数据库的二进制安装和基础入门操作

必赢365net手机版 26

前言:Mysql数据库,知识相当多,要想学精学通那块文化,估摸也要费用和学linux相近的肥力和岁月。笔者也是只会些毛皮,给我们大吃大喝一下~

一、MySQL安装

(1卡塔尔国安装情势:

1 、次第包yum安装,下实验生机勃勃

  优点:安装快,简单

  劣势:定死了逐个文件的地点,太愚钝

2
二进制格式的次序包:展开至特定路径,并经过简短安排后就可以使用(推荐卡塔 尔(英语:State of Qatar),下实验二

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/

必赢365net手机版 1

若上穿梭网,也足以利用本身光盘里的老版本

 

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

必赢365net手机版 2

留意:开启服务后,会多八个mysql的客户,它的家目录:存放数据库,相当于数据库中的各样表

mysql客商是安装包时,试行了个剧本,创造了mysql客商,提醒我们若是二进制安装需创设客户

必赢365net手机版 3

rpm -q –scripts mariadb-server 能够查阅那些剧本

 必赢365net手机版 4

 

4、mysql 运行

发掘是root,能查能删,非常不安全

仍然是能够mysql xxx 无名氏登陆

必赢365net手机版 5

 

5、运维安全脚本

/usr/bin/mysql_secure_installation

必赢365net手机版 6

必赢365net手机版 7

 

实验二:二进制安装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/

(不像编译安装近似,解包能够放在其余目录,这一个二进制安装必需钦点在此个目录卡塔 尔(英语:State of Qatar)

 

2、cd /usr/local/ 发掘mariadb的目录名字不符合供给

ln -s mariadb-10.2.8-linux-x86_64/ mysql 创建软连接也得以改名

必赢365net手机版 8

 

3、创建mysql用户

useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql

 

4、创设修改配置文件

ls support-files/
包里自带的有布署文件,但地点不对,要放在/etc/mysql/my.cnf

必赢365net手机版 9

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 //忽略名字的反向解析,加快速度

必赢365net手机版 10

 

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

  -pPASSWOSportageD :客商的密码; 建议选择-p, 默认为空密码

必赢365net手机版 11

 

2、mysql中有些的名词

数据库:database

表:table

索引:index

引擎:engines

列、字段:column

G:竖着突显

 

3、SQL 语句:(4大类)

DDL: Data Defination Language
数据定义语言,改过表结构

  CREATE(创造卡塔尔国, DROP(删除卡塔尔,
ALTEEnclave(订正表结构卡塔尔

DML: Data Manipulation Language
数据操作语言,更正表里的数额

  INSERT, DELETE,
UPDATE(更新数据卡塔尔国

DQL :Data Query Language
数据的询问语言

  SELECT 用法多,特别灵活

DCL :Data Control Language
数据调节语言,授权限

  GRANT, REVOKE(撤销授权卡塔 尔(阿拉伯语:قطر‎

 

三、对数据库的操作

1、查看数据库:show databases;

翻开某些数据库中的表:show tables [from database_name]
假若已经在这里个库下,不用加from

必赢365net手机版 12

数据库有information_schema
库,那几个库是只读库,唯有root特殊权限的客商登陆才干收看,无法drop删除

数据库有#mysql50#.mozilla
相同的库的拍卖方法,因为mysql家目录下有个藏匿文件诱致,无法去除

必赢365net手机版 13

把那些隐蔽文件移走就好了

必赢365net手机版 14

 

2、创造数据库:

CREATE DATABASE(数据库) [IF NOT
EXISTS
](假如不真实,创制卡塔尔’DB_NAME’;
成立成功五个,会转换三个表数据库文件

  CHARACTEMurano SET ‘character set name’ 设置字符集,不引入设置,不提出调

  COLLATE ‘collate name’ 设置排序准绳,不推荐设置

留意:数据库对象的命名法规

必须以字母起头

可回顾数字和八个特殊字符(# _ $)

毫不使用MySQL 的保留字

同一Schema(数据库卡塔尔 下的对象不能够同名

 

3、删除数据库

DROP DATABASE [IF EXISTS] ‘DB_NAME’;
删除成功,会删除相应的表数据库文件

翻看扶持全数字符集:SHOW CHARACTE奥迪Q5 SET; 没有需求改

翻开帮衬全部排序法规:SHOW COLLATION; 不须要改

4、获取命令使用扶助:mysql>help create database;

 

例:create database testdb;  创建testdb数据库

drop database testdb;  删除testdb数据库

必赢365net手机版 15

 

四、创立删除表

1、查看数据库中具备的表:show tables from base_name;

 查看表结构desc tbl_name;

 

2、创建表,根据范式

CREATE TABLE [IF NOT EXISTS] ‘tbl_name’ (col1 type1 修饰符,
col2 type2 修饰符, …)

字段信息:

• col type1 点名项目

• PCRUISERIMAPAJEROY KEY(col1,…) ()复合主键

• INDEX(col1, …) 索引

• UNIQUE KEY(col1, …) 唯一键

表选项:

• ENGINE [=] engine_name (引擎设置,私下认可就好卡塔 尔(英语:State of Qatar)

  SHOW ENGINES; 查看扶持的engine 引擎类型

• ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT
|COMPACT} 行的格式,默许就好

create table students3 select * [id,name] from students;
也足以创制一个表,完全复制另贰个表的结构[或协调筛选的布局];复制的表未有约束,如主键

insert into students3 select * from students;
有students3这些表,完全复制另叁个表的原委

收获创造表的推搡:mysql> HELP CREATE TABLE;

 

3、删除表: DROP TABLE [IF EXISTS] ‘tbl_name’;

 

4、例子:

例1:CREATE TABLE testdb.students (id int UNSIGNED NOT NULL PRIMARY
KEY,name VARCHAR (20) NOT NULL,age tinyint UNSIGNED);

表达:成立testdb库中名称叫students表;表有3列:id、name、age;id:数据类型int为正、不为空、设为主键;name:数据类型VARCHAEvoque(20)、不为空;age:数据类型tinyint UNSIGNED)

 

例2:create table teachers (id int unsigned not null,name varchar(20)
not null,age tinyint unsigned,primary key(id,name));

表达:创制testdb库中名叫teachers表;表的复合主键为id和name列;其余和例1同样

必赢365net手机版 16

例3:create table students3 select *  from students;
 创建students3复制students的内容

必赢365net手机版 17

 

五、DDL语句:修改表结构,尽量不要改表结构,相当少用

1、查看表结构:DESC
[db_name.]tb_name;

2、改善表结构 alter

ALTER TABLE ‘tbl_name’

  字段:

    增添字段:add

      ADD col1 data_type [FI福睿斯ST加到第大器晚成段的末尾|AFTE奥迪Q7col_name某一段的背后]

    删除字段:drop

    改善字段:change (字段名卡塔 尔(英语:State of Qatar), modify (字段属性卡塔 尔(英语:State of Qatar)

    索引:

      增添索引:add

      删除索引: drop

    表选项:

      修改:change

翻看援助:Help ALTEXC90 TABLE

 

3、例子:

Help ALTE大切诺基 TABLE 查看扶助

ALTER TABLE students3 RENAME s3; 改表名

ALTER TABLE s3 ADD phone varchar(11) AFTER name;
在s3表的name字段后加三个phone

必赢365net手机版 18

ALTER TABLE s1 MODIFY phone int; 把phone的数据类型改为int

ALTER TABLE s1 CHANGE COLUMN phone mobile char(11);
把字段phone改名叫字段mobile,数据类型为char(11)

ALTER TABLE s1 DROP COLUMN mobile; 删除字段mobile

ALTER TABLE students ADD gender ENUM(‘m’,’f’)
扩大gender字段,为枚举类型,只可以是m或f

ALETR TABLE students CHANGE id sid int UNSIGNED NOT NULL POdysseyIMA途观Y
KEY; 把校订id字段为sid,数据类型为正int、非空、主键

ALTER TABLE students ADD UNIQUE KEY(name); 在name字段加唯豆蔻年华键

ALTER TABLE students ADD INDEX(age); 在age字段加索引

DESC students; 查看那一个表

SHOW INDEXES FROM students; 查看索引新闻

ALTER TABLE students DROP age;

 

六、DML语句,改善表内容

1、查看

select * from tab_name [WHERE clause [LIMIT [m,]n];]
查看表中的全部剧情,Limit m,n 跳过m行,要n行

select id,name,… from tab_name; 查出钦赐的表中内容

select count(*) from tab_name; 查看表中的记录数据,count()是自带的函数

 

2、修正表内容:

• INSERT 添加,插入,下有例子

  INSERT [INTO] tbl_name[(col_name,…)]
VALUES(val1,…),(…),… 下例2,3

  分析:①
tbl_name后不加(),暗中同意按表结构的列;若加(),前后()内容要对应,顺序能够不按表结构,也能够设null值,但最棒不要,

     ② 选项不是数字,都要加”,例:name=’along’

insert into tab_name1 select * from tab_name2; 批量导数据,下例4

 

• UPDATE:
更新,改善表内容
,下有例子

  UPDATE tbl_name SET col1=val1, col2=val2, … [WHERE
clause] [ORDER BY ‘col_name’ [DESC]] [LIMIT [m,]n]; 下例5

 分析:若不加where,直接把全数列都改良了,Limit m,n 跳过m行,要n行

 

• DELETE:删除表内容,下有例子

  DELETE FROM tbl_name [WHERE clause] [ORDERBY ‘col_name’
[DESC]];可先排序再钦点删除的行数,下例6

  剖判:若不加where,直接把具有列都删除了

TRUNCATE TABLE tbl_name;
清空表,急速清空,删除的时候,不计日志,稳重运用

 

3、例子

① select * from students limit 3,2;

必赢365net手机版 19

② insert into students(id,name,age) values(1,’along’,18); 添加1行信息

③ insert into students values(2,’xiaoming’,19),(3,’xiaohong’,20);
添加2,3行信息

必赢365net手机版 20

④ insert s2 select * from students; 复制students表的音信到s2表中

必赢365net手机版 21

⑤ update s2 set name=’xiaohei’,age=30 where id=2; 校订id=2行的开始和结果

必赢365net手机版 22

⑥ delete from s2 where id=3; 删除s2表的id=3的行

 

七、DQL 语句,select

DQL :SELECT,用法超级多

SELECT col1,col2,… FROM tbl_name [WHERE clause] [ORDER BY
‘col_name’ [DESC]] [LIMIT [m,]n]; 查询表内容新闻,上例1

1、字段表示法:

  *: 全部字段

  as
:字段别称,
若事先做好了表,想要把列的克罗地亚共和国(Republic of Croatia卡塔 尔(阿拉伯语:قطر‎语改成中文,不用改良,能够一贯用别称,下例1

 

2、排序:order by col_name [desc]

  解释:by后钦点列,desc反向排序,反向也能够-col_name

  注意:若此中有空值,正向排序空值在率先行,反向排序空值在最后大器晚成行,可以order
by -col_name desc 即正向排序,有把空值放在最终后生可畏行,下例2

 

3、WHERE clause:where 后的取舍

操作符:下例3

  >, <, >=, <=, ==, !=

  BETWEEN … AND …

  LIKE:模糊相称,

    % :任性长度的人身自由字符

    _ :放肆单个字符;

  RLIKE :正则表达式格局相称

  IS NULL ,IS NOT NULL
寻觅空值,不可能用=,只可以用is,所以最棒不要有null,糟糕管理

  IN (val1,val2,…卡塔尔 离散值展现

条件逻辑操作:

  and ,or ,not

 

例子:

① select id as 学子编号,name 姓名,age 年龄 from students; 设置别称

必赢365net手机版 23

② select * from students order by -age desc;
按岁数的列正向排序,null在终极

必赢365net手机版 24

③ select * from students where age>=20; 显示age>=20的

select * from students where age between 18 and 20; 显示18-20的

select * from students where name like ‘xiao%’; 显示name是xiao开头的

select * from students where name rlike ‘ng$’; 显示name是ng结尾的

必赢365net手机版 25

select * from s2 where age is null; 显示null值的行

select * from students where age in (18,20,30); 显示age=18,20,30的行

必赢365net手机版 26

 

 

八、DCL 数据调控语言,授权限

(1卡塔 尔(阿拉伯语:قطر‎客户账号

1、客户账号:’user’@’host’

  user: 用户名

  host: 允许客户通过怎么着主机远程连接mysqld 服务

    IP 、互连网地址、主机名、通配符(% 和_)

2、创建用户:

CREATE USER ‘username’@’host’ [IDENTIFIED BY ‘password’];

例:create user ‘along’@’192.168.30.%’ identified by ‘centos’;
加多along账号在192.168.30这几个网段,能够输centos密码连接

瞩目:这里的账号和linux的客户不是叁个事物

 

3、查看当前等登陆的顾客:

SELECT user();

4、查看已经增加的客户:

SELECT User,Host,Password FROM mysql.user;

 

5、删除用户:DROP USER ‘username’@’host’;

示例:drop user’along’@’192.168.30.107′;

 

6、纠正口令:多用第意气风发种

SET PASSWORD FOR ‘user’@’host’ = PASSWORD(‘password’);

  分析:password();是调用了自带的函数

  例:set password for ‘along’@’192.168.30.%’=password(‘along’);

② UPDATE user SET password=PASSWORD(‘magedu’) WHERE User=’root’;

  注意:也等于改了user的表,不推荐用,改革表的一声令下不会立时见效,需施行FLUSH
PRIVILEGES
刷新一下见到成效

③ /usr/local/mysql/bin/mysqladmin -u root –poldpassword password
‘newpassword’

留意:仅创造的客户,其所持有的权杖非常的小,所以大家要扩充授权

 

(2)DCL,授权,回笼权限

1、授权

GRANT priv_type,ON [object_type]
db_name.tb_name TO
‘user’@’host’ [IDENTIFIED BY ‘password’] [WITHGRANT OPTION];
授权并创制账号

① priv_type: ALL [PRIVILEGES] 授权类型:

   insert增,delete删 , update改,select查,all全体权力

② db_name.tb_name: 对哪些数据库的哪位表授权:

  *.*: 全数库的所表

  db_name.*: 钦命库的全部表

  db_name.tb_name: 钦赐库的指定表

  db_name.routine_必赢365net手机版,name :钦点库的仓库储存进程和函数

例:grant all on test.* to ‘along2’@’%’ identified by ‘centos’;
创设along2客户,允许其在全数主机通过centos密码登入,对test库的兼具表有全部权限

 

2、回笼授权:

REVOKE priv_type,ON db_name.tb_name FROM
‘user’@’host

例:revoke delete on test.* from ‘along2’@’%’;
回笼along2@’%’顾客对test库的全数表的删减权限

 

注意:

① MariaDB 服务进程运维时会读取mysql 库中享有授权表至内部存款和储蓄器

② GRANT 或REVOKE 等实行权限操作会保存于系统表中,MariaDB
的服务进度平常会活动重读授权表,使之生效

③ 对于不可以预知或无法及时重读授权表的下令,可手动让MariaDB
的劳动进程重读授权表:

mysql> FLUSH PRIVILEGES;

 

好了,关于mysql,小编也只是刚接触,认为温馨还在门外,希望大家一同发展!!!

Leave a Comment.