MySQL数据库系统
MySQL安装(源码包安装)
卸载系统中已存在的MySQL的rpm版软件
安装前工作
创建mysql程序用户
useradd-s/sbin/nologin
安装工具
yuminstall-yncurses-develcmakemakegcc
gcc-c++
1.配置
cmake\
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_DATADIR=/home/mysql/\
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock\
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_ARCHIVE_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DENABLED_LOCAL_INFILE=1\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DEXTRA_CHARSETS=all\
-DWITH_SSL=system\
-DMYSQL_TCP_PORT=3306\
-DENABLE_DOWNLOADS=1\
-DWITH_SSL=bundled
如果在配置的时候报错,之后重新配置的时候需要清除缓存文件,在接着安装
rm-fCMakeCache.txt
2.make;makeinstall
mysql主配置文件
/etc/my.cnf
在源码包所在目录的support-files目录中有配置文件的模板,可以拷过去直接使用
cpsupport-files/my-medium.cnf/etc/my.cnf
更改安装目录权限,使mysql程序有权限管理
chown-Rmysql.mysql/usr/local/mysql
更改PASH变量,方便管理mysql
exportPATH=$PATH:/usr/local/mysql/bin/
(要永久生效可以写在~/.bash_profile等配置文件中)
将mysql加为系统程序,方便管理
在源码包所在目录的support-files目录中有mysql的服务脚本文件mysql.server
cpsupport-files/mysql.server/etc/init.d/mysqld
chkconfig--addmysqld
chkconfig--level35mysqldon
初始化mysql
/usr/local/mysql/scripts/mysql_install_db\
--user=mysql\
--ldata=/var/lib/mysql\
--basedir=/usr/local/mysql\
--datadir=/home/mysql
(初始化脚本mysql_install_db位于安装目录的scripts文件夹中,--user指定用户,--ldata指定链接文件,--basedi指定基本目录,--datadir指定数据目录)
因为配置时指定了-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock,可实际此文件在/var/lib/mysql/mysql.sock目录下,所以我要给它设置一个链接
ln-s/var/lib/mysql/mysql.sock/home/mysql/mysql.sock
编辑服务脚本文件/etc/init.d/mysqld文件,指定安装的目录和数据文件保存文件的目录
vi/etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
启动mysql程序
servicemysqldstart
查看程序是否启动
netstat-anptu|grepmysqd
以上步骤做完后,mysql的安装和初始化做好了,就可以使用了
登录数据库
mysql-uroot
-p:使用密码
-h:登录远程数据库
修改mysql数据库root密码
mysqladmin-uroot-ppassword'新密码'需输旧密码
数据库的提示符为mysql>,命令大小写不敏感;且每个命令都以分号;号结尾,若没以分号结尾,将代表命令没有结束,只是强制换行而已,等同于linux命令行中的\键。
下面是mysql环境下的一些命令
增加命令
CREATEDATABASEbenet;新建benet数据库
usebenet;进入benet数据库
CREATETABLEusers(user_nameCHAR(16)NOTNULL,user_passwdCHAR(48)DEFAULT'',PRIMARYKEY(user_name));创建表名为users,
user_name表示第1行名称,“char(16)”表示类型为字符串,最大为16数值,“notnull”表示值不能为空;user_passwd”表示第2行,DEFAULT''表示可以为空primarykey(user_name)表示主键名
INSERTINTOusers(user_name,user_passwd)VALUES('zhangsan',PASSWORD('123456'));在users表中插入一条内容,如果插入的每个字段都包含内容,(user_name,user_passwd)可以省略
删除命令
DELETEFROMusersWHEREuser_name='lisi';
删除user表中lisi的内容
DROPFROMusers;删除user表中所有内容
DROPTABLEusers;删除users表
DROPDATABASEbenet;删除benet数据库
更改命令
UPDATEmysql.userSETpassword=PASSWORD('123456')WHEREuser='root';更改root的password值
查看命令
showdatabases;查看所有数据库
usetest;进入test数据库
showtables;查看数据中的表
describeuser;查看user表的信息
select*fromuser;查看user表里的内容
selectuserfromuser;查看user表里的user这个用户字段里有哪些用户
SELECTuser,host,passwordFROMmysql.userWHEREuser='';查看mysql库中user表中user,host,password中user字段为空的行
用户授权
GRANTselectONauth.*TO'tom'@'localhost'IDENTIFIEDBY'密码'新建tom用户,对其授权只能查询以auth开头的所有表,或auth中的所有表,且只能在localhost登陆,可以为IP
flushprivileges;刷新授权信息
备份与恢复
备份和恢复是在bash环境下执行,是linux命令,而不是在mysql环境下
备份
mysqldump-uroot-p--opt--all-databases>all-data.sql
备份所有数据库
mysqldump-uroot-p--databasebenet>benet.sql
备份benet数据库
还原
mysql-uroot-p<all-data.sql
all-data.sql为备份的文件,如果只是某个数据库的备份,可以在-p后面跟上数据库名