MySQl是一种关系型数据库,存放的是文字数据,它是以“表”的形式进行存储的。由于MySQl的实用性和不收费,它在世界上是应用最多的数据库,但是,它不支持大量数据写入。接下来,我将为大家分享一下我学习数据库的过程,首先是安装。我用的是CentOS6.5版本的虚拟机,它自带的MySQl软件包已经跟不上我们工作中的需要,因此,我们需要先卸载虚拟机中的MySQl软件包,然后在网上找到5.5版本的MySQL软件包和2.8版本的cmake软件包。
我们先利用xshell进行远程连接虚拟机,然后利用xftp软件把我们在网上下载的软件包给复制到虚拟机中(本文用CentOS7作为演示)。
可以看到,我已经把软件包复制到虚拟机的家目录下,然后我们就需要开始解包了,解包时要把解包后的文件移动到/usr/src目录下。如图:
接下来就是编译与安装了,我们要先确保自己虚拟机里有编译需要的命令:gcc,gcc-c++,make,autoconf,automake.而且,我们需要安装一下ncurses-devel软件包,在本地yum里就有该软件包,这步是必须的。我们先进入cmake的目录下,然后进行编译,编译需要运行的命令是./configure, make 和make install,但是cmake需要的是./configure ,gmake和gmake install 。
编译安装成功后如下所示:
安装成功后,我们需要创建一个mysql的程序用户,程序用户是每一个程序必须的,然后在进入mysql的目录下,这时就需要用到我们之前安装的cmake了。我们先进行cmake配置,运行如下命令:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
-------------------------------------------------------------------------------------------------------------------------------
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //该命令表示主程序的安装目录
-DSYSCONFDIR=/etc //配置文件存放目录
-DDEFAULT_CHARSET=utf8 //该命令表示默认字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci //默认字符集的校对规则
-DWITH_EXTRA_CHARSETS=all //安装所有字符集
cmake配置完成后就可以进行安装了,运行make和make install
安装成功后显示如下:
安装之后我们还需要进行优化,首先需要把mysql主程序的所在目录及其子目录的属主给改为mysql,即:chown -R mysql /usr/local/mysql/ .这样使用mysql才能有读写执行的权限。然后,我们需要修改/etc/my.cnf配置文件,mysql目录里有模板support-files目录,里面有好几种模板,我们需要的是my-medium.cnf(测试用)模板,只需要复制过去即可。
接下来就是添加系统服务mysqld了,这个在support-files模板目录里也有,只需复制即可,cp support-files/mysql.server /etc/init.d/mysqld. 当然,服务还需要给它x权限,并加入开机自启动。如图:
接下来就是配置环境变量了,有两种方法,第一种是把mysql的命令加到全局变量,
echo “export PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
source /etc/profile
第二种是建一个软链接
ln -s /usr/local/mysql/bin /usr/local/bin
到这里基本配置完成了,只需要进行一下初始化就能使用了,初始化时启动mysql目录下的scripts下的mysql_install_db脚本,并指定安装目录、数据目录、用户。
如上图,出现两个OK即成功。现在启动mysqld服务并检查一下3306端口即可运行。
------------------------------------------------------------------------------------------------------------------------------
接下来就是将一些mysql的入门级操作
mysql监听的端口是3306
mysqladmin -u用户 password ‘密码’ 是给mysql用户设置密码
设置密码后登录变为 mysql -u用户 -p密码
数据库每条语句必须以;结尾
show databases; 看所有的库 create database 库名; 创建库
drop database 库名; 删除库
use 库名; 进入该库
show tables; 查看表
创建名为users的表: 字段名 不许空
create table users (users_name char(最大字符数) not null,user_passwd char(最大字符数) default ‘ ‘ ,primary key(user_name)) 字段名
主键(唯一标识)
drop table 库名.表名; 删除表
库名就是空间名
describe 库名.表名 看表结构
set names utf8; 表头识别中文
select 字段名(所有用*表示) from 空间名.表名; 查看表数据
插入数据:
insert into 空间名.表名(字段1,字段2) values(‘值1’,‘值2’);
删除数据:
delete from 空间名.表名; 删表的所有数据
delete from 空间名.表名 where 字段1=‘值1’; 删除值1的数据
update 空间名.表名 set 字段A=‘值A’where 字段B=‘值B’;
当不带where时,改字段A所有数据 ,带where时,改满足后面条件的数据
mysql账号涵盖了权限
root@ip ip表示该root账号只能在该ip登陆
show databaes,里面的user存放账号密码
grant all on *.* to ‘yunjisuan’@‘ip’ identified by‘123123’ 授权
all 所有权限 *所有库 * 所有表 identified 密码
fiush privileges 刷新