Mysql编译安装
(一)在linux或windows平台共享mysql源码包,并挂载
yum install -y cifs-utils
mount //192.168.1.100/Apache--httpd /opt
cd /opt
tar zxvfmysql-5.5.24.tar.gz-C /a 的 //解压源码包
(二)源码安装
useraddmysql -s /sbin/nologin //添加用户mysql,并不让mysql登陆系统
mkdir /usr/local/mysql //建mysql安装目录
1.安装编译工具
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
ncurses-devel \
cmake \
2.进配置文件目录编译安装
cd /a/mysql-5.5.24
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
make && make install //编译安装一起执行
#rm CMakeCache.txt //如果安装失败,删除缓存文件,尝试重新安装
chown -R mysql.mysql /usr/local/mysql //改变这个目录的属主与属组
export PATH=$PATH:/usr/local/mysql/bin/ //初始化环境变量
cd /root
vi .bash_profile//编辑.bash_profile这个文件
PATH=$PATH:/usr/local/mysql/bin/ //设置开机自动运行mysql
cp /usr/local/mysql/support-files/my-medium.cnf/etc/my.cnf //建立主配置文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld//使mysql支持service命令
chmod 755 /etc/init.d/mysqld 使mysqld有执行权限
chkconfig --add /etc/init.d/mysqld //添加/etc/init.d/myspld到chkconfig里,用service命令来管理
或直接用chkconfig --add mysqldchkconfig也是可以添加
chkconfig mysqld --level 235 on //设置mysqld在2,3,5级别启动
3.初始化脚本mysql_install_db
cd /usr/local/mysql/scripts
./mysql_install_db \
--user=mysql \//指定用户为mysql
--ldata=/var/lib/mysql \ //链接文件是/var/lib/mysql
--basedir=/usr/local/mysql \ //基本目录/usr/local/mysql
--datadir=/home/mysql //数据目录为/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock //软连接
vi /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
#source /root/.bash_profile //重新加载初始脚本
service mysqld start
netstat -anpt | grep 3306
#mysql -u root //登录数据库
Mysql增、删、改、查
(一)查看命令
mysql> show databases; //查看有哪些数据库
mysql> use xiaohang; //切换库(xiaohang库)
mysql> show tables; //查看库中有哪些表
mysql> describe xiao; //查看表(xiao表)
mysql> select * from xiao; //查看表里的内容(xiao表)
mysql> select tom from xiao; //查看xiao表里的tom这个用户字段里有哪些用户
(二)新增命令
mysql>CREATE DATABASE xiaohang; //创建数据库名为xioahang
mysql>use xiaohang; //进入xiaohang这个数据库
mysql> CREATE TABLE xiao (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));
解释:
CREATE TABLE xiao:创建表名为
user_name CHAR(16):用户名,为不超过16个字符的字符串
not null:表示值用户名不能为空
user_passwd CHAR(48):密码,为不超过48个字符的字符串
DEFAULT '': 表示密码可以为空
PRIMARY KEY (user_name)):表示以用户名为主键(user_name))
mysql> INSERT INTO xiao(user_name,user_passwd) VALUES('tom', PASSWORD('123456')); //在xiao表中插 用户名和密码
mysql> insert into xiao values('tom',password('123abc')); //在users表中插入一条内容,如果插入的每个字段都 包含内容,(user_name,user_passwd)可以省略
(三)删除命令
mysql> DELETE FROM xiao WHERE user_name='tom'; //删除表(xiao)的tom用户
mysql> DROP TABLE xiao; //删除表(xiao)
mysql> DROP DATABASE xiaohang; //删除库(xiaohang)
(四)更改命令
mysql> UPDATE xiao SET user_passwd=PASSWORD('') WHERE user_name='tom'; //将密码字符设为空值
mysql> UPDATE mysql.user SET password=PASSWORD('abc123') WHERE username='root'; //设置root登陆 mysql密码
mysql>flush privileges; //刷新授权信息
(五)查询命令
mysql> SELECT user,host,password FROM mysql.user WHERE user=''; //查看mysql库中user 表中user,host,password 中字段 为空的行
mysql> select * from xiao; //查看xao表里的所有信息
mysql> select user from users; //查看users表里的user这个用户字段里有哪些
用户
(六)更改密码
#mysqladmin -u root -p password '123456' //输入新密码
#Enter password: //输入旧密码
#mysql -u root -p //再次登陆,确认密码修改成功
mysql> UPDATE mysql.user SET password=PASSWORD('abc123') WHERE username='root'; //设置或修改root 登陆mysql密码
Mysql授权
(一)本地授权
mysql> GRANT select ON xiaohang.* TO 'tom'@'localhost' IDENTIFIED BY '123456';//
新建tom用户,密码设置为123456,授权地址为本地,对xiaohang开头的所有表只有查询权限。
(二)用户授权
mysql> grant all on xiaohang.* to 'tom'@'%'identified by '123456';
新建tom用户,密码设置为123456,授权地址为所有(即%),允许在xiaohang的库中执行所有操作(即grant all )
解释:
GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户不存在时,GRANT语句将会创建新的用户,否则GRNAT语句用户修改用户信息。
语句格式如下:
GRANT 权限列表 ON 库名.表名 TO ‘用户名’@‘来源地址’【IDENTFIED BY ‘密码’】
Mysql备份与恢复
(一)备份
# mysqldump -u root -p --opt --all-databases > all-data.sql //备份所有数据库
# mysqldump -u root -p --database xiaohang > xiaohang.sql //备份xiaohang数据库
# mysqldump -u root -p xiaohangxiao > xiaohang-xiao.sql //备份xiaohang数据库中的xiao表
(二)还原
#mysql -u root -p xiaohang < xiaohang.sql //将xiaohang数据库还原到数据库中。
#mysql -u root -p xiaohang < xiaohang-xiao.sql //将xiaohang库中的xiao表还原到数据库