数据库安装和基本操作

1、使用rpm安装mysql

yum install mysql-server安装服务器包,实际上这条命令会自动安装客户端包。

查看包配置文件

service mysqld start 启动 数据库


启动成功,会出现提示,实际上是跑了一个初始化的脚本在/var/lib/mysql/中生成了套接字文件及其他数据库文件

mysql默认没有启动密码。可以执行以下命令设置mysql中root口令。

/usr/bin/mysqladmin -u root password 'new-password'

/usr/bin/mysqladmin -u root -h centos6 password 'new-password'



u指定用户 -p口令 -S套接字文件。本机连接需要指定套接字,通过套接字文件连接

也可不指定以上选项。




centos7中安装包么有取消了mysql包,用mariadb包取代mysql,我们可以直接安装mariadb-server包,过程和centos6安装启动类似。

yum install mariadb-server 

查看配置文件路径


启动数据库服务查看端口

连接数据库

e

安装完成。

2、二进制安装mariadb

二进制安装是已经编译完成的包,可以直接在mariadb官网中下载

下载路径https://mariadb.org/mariadb-10-0-11-now-available/


因为二进制包已经编译完成。有指定的安装路径。需要将包解压到/usr/local/mysql目录中

tar -xf mariadb-10.2.19-linux-x86_64.tar.gz -C /usr/local 解压到指定目录


解压完成。名称太长,可以指定一个软连接。方便以后修改


此目录存放这mariadb的程序

创建mysql用户,默认二进制安装没有生成mysql用户

useradd -r -s /sbin/nologin -d /data/mysql -c 'maridb user' mysql  

mkdir /data/mysql 创建mysql的家目录

查看目录信息。发现所属组不对,需要改成mysql用户和组

创建mysql用户,默认二进制安装没有生成mysql用户


执行scripts目录中的脚本。初始化创建数据库。并指定用户和数据库存放路径

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

目录中生成初始数据库


创建一个配置文件目录  /etc/mysql 用于存放数据库配置文件。

cp support-files/my-huge.cnf /etc/mysql/my.cnf


修改一下 socket 文件路径指向我们自己创建的数据库路径。

cp support-files/mysql.server /etc/init.d/mysqld 将服务脚本拷贝到init.d目录中

chkconfig -add mysqld 加入系统启动服务


加入path路径。


连接数据库


3、编译安装mariadb

下载源码包https://downloads.mariadb.org/mariadb/10.3.15/

安装编译工具

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boostdevel

gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssldevel

libevent-devel libaio-devel

创建用户组 

useradd -r -s /sbin/nologin -d /data/mysql/ mysql



tar -xvf mariadb-10.2.19.tar.gz  解压文件

进入mariadb-10.2.19目录开始执行编译

cmake . \

-DCMAKE_INSTALL_PREFIX=/app/mysql \

-DMYSQL_DATADIR=/data/mysql/ \

-DSYSCONFDIR=/etc/mysql \

-DMYSQL_USER=mysql \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \

-DWITH_DEBUG=0 \

-DWITH_READLINE=1 \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_LIBWRAP=0 \

-DENABLED_LOCAL_INFILE=1 \

-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci

make && make install

 提示:如果出错,执行rm -f CMakeCache.txt

编译完成后执行环境变量,生成数据库。和配置文件。正常启动即可

准备环境变量

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh

生成数据库文件

cd /app/mysql/

scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

准备配置文件

cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf

准备启动脚本

cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld

启动服务

chkconfig --add mysqld ;service mysqld start

4、students表的数据,实现下面的需求,写出sql:

MariaDB [db1]> select * from students;

+—-+——–+——-+——-+——+——-+

| id | name   | phone | score | swx  | class |

+—-+——–+——-+——-+——+——-+

|  1 | adc     | 110      |    86   | m     |     1 |

|  2 | zhou   | NULL   |    80   | f       |     1 |

|  3 | fei       | NULL   |   100  | f       |     2 |

|  4 | lin        | NULL  |    88   | m     |     2 |

|  5 | wang   | 1000   |    99   | m     |     2 |

|  6 | 飞哥    | 10000  |    99   | m    |     2 |

+—-+——–+——-+——-+——+——-+

create table students(id int unsigned auto_increment primary key ,name varchar(10) not null,phone varchar(11),socre tinyint unsigned,swx enum('f','m') default 'm' ,class tinyint unsigned);

创建表结构

alter table students add age tinyint unsigned after class;

update students set age=25 where id=1;

update students set age=22 where id=2;

update students set age=28 where id=3;

update students set age=35 where id=4;

update students set age=32 where id=5;

update students set age=25 where id=6;

添加年龄字段并更新数据

1)在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄

select name,age from students where age > 25 and swx='m';


2)以ClassID为分组依据,显示每组的平均年龄

select class,avg(age) as 平均年龄 from students group by class;

利用数据库自带函数avg函数统计

3)显示第2题中平均年龄大于30的分组及平均年龄

select class,avg(age) as 平均年龄 from students group by class having avg(age) > 30;




4)显示以L开头的名字的同学的信息

select * from students where name like 'l%';


5)显示TeacherID非空的同学的相关信息

select * from students,teacher where students.class=teacher.id;


select * from students inner join teacher on students.class=teacher.id;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容