1、MySQL服务基础
2、MySQL的编译安装
3、访问MySQL数据库
4、使用MySQL数据库mysql
MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。sql
MySQL项目在08年之前是由MySQL AB公司进行开发、发布和支持,以后历经Sun公司收购MySQL AB公司,Oracle公司收购Sun公司的过程,目前MySQL项目由Oracle公司负责运营和维护。数据库
为了确保MySQL数据库功能的完整性、可定制性,我采用了源代码编译安装的方式安装MySQL数据库系统,MySQL5.X系列版本的使用最为普遍,该版本的稳定性、兼容性都不错,下载源码包的官方站点为 https://www.mysql.com 。vim
下载安装所需软件包:https://pan.baidu.com/s/1vMP72gT6oELBb5eKNTbhNw
提取码:gxtf
centos
[root@centos01 ~]# mount /dev/cdrom /mnt/ <!--挂载系统光盘--> [root@centos01 ~]# groupadd mysql <!--建立管理mysql的组--> [root@centos01 ~]# useradd -M -s /sbin/nologin mysql -g mysql <!--建立管理mySQL数据库的用户 --> [root@centos01 ~]# rm -rf /etc/yum.repos.d/CentOS-* <!--删除yum源里全部以Centos开头的文件--> [root@centos01 ~]# yum -y install ncurses-devel <!--安装mysql依赖程序ncurses-devel-->
[root@centos01 ~]# umount /mnt/ <!--卸载光盘,切换Linux光盘--> [root@centos01 ~]# mount /dev/cdrom /mnt/ <!--挂载Linux光盘--> [root@centos01 ~]# mount /dev/cdrom /mnt/ <!--解压缩编译mysql工具cmake--> [root@centos01 ~]# cd /usr/src/cmake-2.8.6/ <!--进入cmake目录--> [root@centos01 cmake-2.8.6]# ./configure <!--配置cmake--> [root@centos01 cmake-2.8.6]# gmake && gmake install <!--编译安装cmake程序-->
[root@centos01 ~]# tar zxvf /mnt/mysql-5.5.22.tar.gz -C /usr/src/ <!--解压mysql程序--> [root@centos01 ~]# cd /usr/src/mysql-5.5.22/ <!--进入mysql目录--> [root@centos01 mysql-5.5.22]#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc <!--配置mysql程序--> [root@centos01 mysql-5.5.22]# make && make install <!--编译安装mysql-->
上述配置命令中,各选项的含义以下:安全
- -DCMAKE_INSTALL_PREFIX:指定MyQSL数据库程序安装到某目录下,如目录/usr/local/mysql。
- -DSYSCONFDIR:指定初始化参数文件目录。
- -DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf-8。
- -DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci是适用于utf-8字符集的通用规则。
- -DWITH_EXTRA_CHARSETS:指定额外支持的其余字符集编码。
[root@centos01 ~]# chown -R mysql:mysql /usr/local/mysql/ <!--设置安装目录数据的全部者--> [root@centos01 ~]# cd /usr/src/mysql-5.5.22/ <!--进入mysql目录--> [root@centos01 mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf <!--生成mysql服务配置文件--> cp:是否覆盖"/etc/my.cnf"? y <!--输入y--> [root@centos01 ~]# vim /etc/profile <!--设置环境变量--> # /etc/profile PATH="$PATH:/usr/local/mysql/bin/" [root@centos01 ~]# source /etc/profile <!--当即生效--> [root@centos01 mysql-5.5.22]# cp support-files/mysql.server /etc/init.d/mysqld <!--生成mysql系统服务控制文件--> [root@centos01 mysql-5.5.22]# chmod +x /etc/init.d/mysqld <!--设置服务的执行权限--> [root@centos01 ~]# chkconfig --add mysqld <!--添加系统服务--> [root@centos01 ~]# chkconfig --level 35 mysqld on <!--添加系统服务--> [root@centos01 ~]#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data <!--初始化管理数据的帐户数据库位置和数据位置-->
[root@centos01 ~]# systemctl enable mysqld <!--设置开机自动启动--> [root@centos01 ~]# systemctl start mysqld <!--启动MySQL服务--> [root@centos01 ~]# netstat -anptu | grep 3306 <!--监听mysql服务是否启动-->
MySQL数据库系统是一个典型的C/S(客户端/服务器)架构的应用。要访问MySQL数据库须要使用专门的客户端软件。在Linux系统中,最简单、易用的MySQL客户端软件是其自带的mysql命令工具。服务器
通过安装后的初始化过程,MySQL数据库的默认管理员用户名为root,密码为空。
登陆成功后将会进入提示符为“mysql>”的数据库操做环境,用户能够输入各类操做语句对数据库进行管理。每条MySQL操做语句以分号“;”表示结束,输入时能够不区分大小写。多线程
[root@centos01 ~]# mysql -u root -p <!--“-u”选项用于指定认证用户, “-p”选项来进行密码校验,默认root密码为空,回车键便可登陆--> New password: <!--Enter键--> mysql> exit <!--断开链接--> [root@centos01 ~]# mysqladmin -u root password <!--给数据库root用户设置密码--> New password: <!--输入密码--> Confirm new password: <!--确认密码--> [root@centos01 ~]# mysql -u root -p <!--root用户链接数据库--> Enter password: <!--输入密码--> mysql> quit <!--断开数据库链接-->
mysql> show databases; <!--查看数据库--> mysql> use myqsl; <!--切换数据库mysql库中--> mysql> show tables; <!--查看mysql库中的表--> mysql> describe user; <!--查看表的结构--> mysql> create database bdqn; <!--新建数据库名字是bdqn--> mysql> drop database bdqn; <!--删除数据库bdqn--> mysql> create table stuinfo(姓名 char(16),性别 char(10),年龄 char(10),联系电话 char(11),Email地址 char(20)); <!--建立表,表名字是stuinfo,第一列名字是姓名,第二列名字为性别,第三列名字为年龄,第四列名字为联系电话,第五列名字为Email地址--> mysql> drop table stuinfo; <!--删除表stuinfo--> mysql> insert into stuinfo (姓名,性别,年龄,联系电话,Email地址) value ('李焱鑫',’男’,’20’,'18232013151',’2807489749@qq.com’); !--stuinfo表插入数据--> mysql> insert into stuinfo value ('吴大狼','男','19','11111111111','11111111@qq.com'); <!--第二种方式插入数据--> mysql> insert into stuinfo value ('张航','男','15','22222222222','22222222@qq.com'); <!--第二种方式插入数据--> mysql> insert into stuinfo value ('曾宪猴','男','8','33333333333','33333333@qq.com'); <!--第二种方式插入数据--> mysql> select * from stuinfo; <!--查看数据库表的全部数据--> +-----------+--------+--------+--------------+-------------------+ | 姓名 | 性别 | 年龄 | 联系电话 | Email地址 | +-----------+--------+--------+--------------+-------------------+ | 李焱鑫 | 男 | 20 | 18232013151 | 2807489749@qq.com | | 吴大狼 | 男 | 19 | 11111111111 | 11111111@qq.com | | 张航 | 男 | 15 | 22222222222 | 22222222@qq.com | | 曾宪猴 | 男 | 8 | 33333333333 | 33333333@qq.com | +-----------+--------+--------+--------------+-------------------+ mysql> select * from stuinfo where 姓名='李焱鑫'; <!--使用条件查询知足条件显示 --> +-----------+--------+--------+--------------+-------------------+ | 姓名 | 性别 | 年龄 | 联系电话 | Email地址 | +-----------+--------+--------+--------------+-------------------+ | 李焱鑫 | 男 | 20 | 18232013151 | 2807489749@qq.com | +-----------+--------+--------+--------------+-------------------+ mysql> update stuinfo set 姓名='LiYanXin' where 姓名='李焱鑫'; <!--修改中文名字为英文--> mysql> delete from stuinfo where 姓名='LiYanXin'; <!--删除LiYanXin记录-->
MySQL数据库的root用户帐号拥有对全部库、表的所有权限,频繁使用root帐号会给数据库服务器带来必定的安全风险。一般在实际工做中会创建一些低权限的用户,只负责一部分库、表的管理和维护操做,甚至能够对查询、修改、删除记录等各类操做作进一步的细化限制,从而将数据库的风险降至最低。架构
GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会建立新的用户,不然,GRANT语句用于修改用户信息。ide
语句格式以下:
GRANT 权限列表 ON 库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY '密码' ]使用GRANT语句时,须要注意的事项以下:
- 权限列表:用于列出受权使用的各类数据库操做,以逗号进行分隔,Select 容许查询;Insert 插入数据;Update 更新数据;Delete 删除数据;All 给全部权限,增长删改查;使用“all”表示全部权限,可受权执行任何操做。
- 库名.表名:用于指定受权操做的库和表的名称,其中可使用通配符“”。“auth.”表示受权操做的对象为auth库中的全部表。
- 用户名@来源地址:用于指定用户名称和容许访问的客户机地址,即谁能链接、能从哪里链接。来源地址能够是域名、IP地址,还可使用“%”通配符,表示某个区域或网段内的全部地址。
- IDENTIFIED BY:用于设置用户链接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。
mysql> grant all on bdqn.* to 'rundb'@'localhost' identified by 'pwd@123'; <!--受权用户rundb对bdqn数据库中全部表有彻底控制权限--> mysql> show grants for 'rundb'@'localhost'; <!--查看受权的权限--> mysql> revoke all on bdqn.stuinfo from 'rundb'@'localhost'; <!--取消受权-->
—————— 本文至此结束,感谢阅读 ——————