十二周

1,使用rpm安装MySQL

yum install mysql-server 安装服务器包
service mysqld start 启动 数据库
mysql默认没有启动密码。可以执行安装脚本
mysql_secure_installation
mysql -p 输入密码登录

2,二进制安装MariaDB

二进制安装是已经编译完成的包,我们拿过来直接解压到指定的目录中 并且创建用户,mysql数据库文件存放的目录,修改PATH变量,修改配置文件就可以了
将包解压到/usr/local/mysql目录中
tar -xf mariadb-10.2.19-linux-x86_64.tar.gz -C /usr/local 
名字太长指定软连接 
ln -s  /usr/local/mariadb-10.2.19-linux-x86_64/ /usr/local/mysql
创建mysql用户,默认二进制安装没有生成mysql用户
useradd -r -s /sbin/nologin -d /data/mysql -c 'maridb user' mysql  
mkdir /data/mysql 创建mysql的家目录
cd /usr/local/mysql
执行scripts目录中的脚本。初始化创建数据库。并指定用户和数据库存放路径
./scripts/mysql_insatll_db --user=mysql --datadir=/data/mysql
复制一个配置文件放在  /etc/mysql下 用于存放数据库配置文件。并且修改数据库数据路径,根据需要在修改其他
cp support-files/my-huge.cnf /etc/mysql/my.cnf

将服务脚本拷贝到init.d目录中
cp support-files/mysql.server /etc/init.d/mysqld 
加入系统启动服务
chkconfig -add mysqld 
service mysqld start 
配置path变量
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh

3,编译安装MariaDB

安装依赖包
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
mkdir /data/mysql
chomn mysql.mysql /data/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
make -j 4  && make install 
生成数据库文件
cd /usr/local/mysql
 ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
准备环境变量
echo 'PATH=/app/mysql/bin:$PATH'> /etc/profile.d/mysql.sh

准备配置文件
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 |
+—-+——–+——-+——-+——+——-+

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

select Name,Age from students where Age>25;

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

select ClassID,avg(Age) from students group by ClassID

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

select ClassID,avg(Age) from students group by ClassID having avg(Age) > 30

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

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

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

select * from students where TeacherID is not null;

你可能感兴趣的:(十二周)