|
使用二进制文件安装MySQL
#cd /usr/local
#tar -zxvf mysql-xxx.tar.gz
#ln -s mysql-xxx mysql
#groupadd mysql
#useradd -g mysql mysql
#/usr/local/mysql/scripts/mysql_install_db
#chown -R root /usr/local/mysql
#chown -R mysql /usr/local/mysql/data
#chgrp -R mysql /usr/local/mysql
数据库的启动
1)使用mysql_safe
shell>mysqld_safe -user=mysql &
2)使用脚本
shell>support-files/mysql.server start
远程连接服务器
shell>mysql -h 地址 -u 用户名 -p
查看服务器信息
shell>mysqladmin version
或
mysql>select version();
创建数据库
mysql>create database 数据库名;
选择数据库
mysql>use 数据库名;
删除数据库
mysql>drop database 数据库名;
查看当前数据库
mysql>select database();
创建表
mysql>create table 表名;
删除表
mysql>drop table 表名;
查看表结构
mysql>describe 表名;
或
mysql>desc 表名;
在命令行上执行SQL语句
shell>mysql -u 用户名 -p 密码 -e "sql命令" 数据库名
如何新增一个mysql用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1,增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2,增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
另外,也可以通过直接往user表中插入新纪录的方式来实现。
新建用户aaa,并设置密码111,允许其在本地访问数据库database1的所有表
mysql>grant select,create,drop,update,alter,delete;
->on database1.*;
->to aaa@localhost;
mysql>update user set password=password ('111") where user='aaa';
mysql>flush privileges;
数据库的备份和恢复
1.直接复制
mysql数据库文件存放在/var/lib/mysql中,每个数据库对应一个文件夹,所有的数据都在目录中,默认自动建立mysql和test库。
2.导出:
shell>mysqldump --database 数据库名 -u root -p >备份名.sql
注:--all-database参数为备份所有数据库
3.恢复:
shell>mysql <备份名.sql
或
mysql>source 备份名.sql
4.一个Mysql自动备份脚本
http://bbs.chinaunix.net/viewthr ... 1%26filter%3Ddigest
忘记MYSQL密码
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :PATH_TO_MYSQL/bin/mysqld --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后修改密码
mysql>use mysql
mysql>update user set password=password('新密码') where user='root';
mysql>flush privileges;
命令行修改root口令
shell>mysqladmin -u root password '新密码'
mysqld起来了,却无法登录,提示"/var/lib/mysql/mysql.sock"不存在
这种情况大多数是因为你的mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,
通过unix socket登录mysql。解决办法:
1,创建/修改文件 /etc/my.cnf,至少增加/修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#在这里写上你的mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
2,指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
shell>mysql -h 127.0.0.1 -u user -ppassword
3,为 mysql.sock 加个连接,比如说实际的mysql.sock在 /tmp/ 下,则
shell>ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可
如何让MySQL支持中文
http://bbs.chinaunix.net/viewthr ... 1%26filter%3Ddigest
http://bbs.chinaunix.net/viewthr ... 1%26filter%3Ddigest
http://bbs.chinaunix.net/viewthr ... 1%26filter%3Ddigest
http://imysql.cn/index.php?q=node/20
参考:
1.chinaunix.net精华
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1
2.MYSQL中文手册
http://dev.mysql.com/doc/refman/5.1/zh/index.html |
|