MySQL的初始管理账号是root,没有密码。(注意:这个root用户不是Linux的系统用户)。MySQL默认用户是root,由于初始没有密码,第一次进入时只需输入mysql即可。
1、修改MySQL root密码
/usr/local/mysql/bin/mysqladmin -u root password 'password' 其中不包括引号''!!
2、启动与停止
/etc/init.d/mysqld start|stop|restart
service mysqld start|stop|restart
/usr/local/mysql/bin/mysqladmin -uroot -p shutdown
3、登录MySQL
登录MySQL的命令是mysql,mysql的使用语法如下:
mysql [-u username] [-h host] [-p password] [dbname]
/usr/local/mysql/bin/mysql -u root -p
Enter password:(输入密码)
4、用户管理
4.1增加用户
格式: grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1. 增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户登录MySQL,然后输入以下命令:
mysql>grant select,insert,update,delete on *.* to " identified by "123"
例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决方法见例2。
例2. 增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使知道了user_2的密码,也无法从网上直接访问数据库,只能通过MySQL主机来操作aaa库。输入的命令如下:
mysql> grant select,insert,update,delete on aaa.* to identified by "123";
用新增的用户如果登录不了MySQL,在登录时输入如下命令:
mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)
4.2修改密码
/usr/local/mysql/bin/mysqladmin -u root -p'old-password' password 'new-password'
格式:mysqladmi -u 用户名 -p旧密码 password 新密码
注,密码都不包括引号''
例一、给root改密码
/usr/local/mysql/bin/mysqladmin -uroot -p123456 password 123
如果是初始化时root密码为空,那-p旧密码一项可以省略。
4.3.1 mysql常用操作
注意: MySQL中每个命令后都要以分号(;)结尾。
1、显示数据库
mysql>show databases;
2、显示数据库中的表
mysql>use mysql;(打开库)
mysql>show tables;
3、显示数据表的结构
mysql>desc 表名; (desc是describe简写)
4、显示表中的记录
mysql>select * from 表名;
5、建库
mysql>create database 库名;
6、建表
mysql>use 库名;
mysql>create table 表名(字段设定列表);
7、删库和删表
drop database 库名;
drop table 表名;
4.3.2 备份与恢复
1、备份
例如,将aaa库备份到文件back_aaa中
shell>cd /var/lib/mysql
shell>mysqldump -u root -p --opt aaa > back_aaa
2、恢复
mysql -u root -p ccc < back_aaa
4.3.3 更改MySQL目录
MySQL默认的数据文件存储目录为/var/lib/mysql.假如要把目录移到/home/data下需要进行下面几步:
(1)在home目录下建立data目录:
cd /home
mkdir data
(2)把MySQL服务进程停掉:
mysqladmin -uroot -p shutdown
(3)把/var/lib/mysql整个目录移到/home/data:
mv /var/lib/mysql /home/data/
(4)编辑/etc/my.cnf配置文件,为了保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为/home/data/mysql/mysql.sock.操作如下:
vi /etc/my.cnf
#The MySQL server
[mysqld]
port=3306
#socket=/var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket=/home/data/mysql/mysql.sock(加上此行)
(5)修改MySQL启动脚本/etc/rc.d/init.d/mysql ,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径/home/data/mysql;
vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql(注释此行)
datadir=/home/data/mysql(加上此行)
(6)重新启动MySQL服务:
/etc/rc.d/init.d/mysql start
注意:更改MySQL数据目录还有一个更好更简便的方法,就是使用符号链接,操作如下,
(1)首先停止MySQL,将/var/lib/mysql数据目录移动到新目录下,
/etc/rc.d/init.d/mysql stop
mv /var/lib/mysql /home/data/
(2)建立符号链接
ln -s /home/data/mysql /var/lib/mysql
(3)启动MySQL即可
/etc/rc.d/init.d/mysql start
一些mysql使用技巧:
(1)mysql查看所有用户
mysql>select user,host,password from mysql.user;
注意,mysql的各种信息都可以从"mysql"系统库中得到。
(2)status查看数据库状态信息
mysql> status; -------------- mysql Ver 14.14 Distrib 5.1.49, for portbld-freebsd8.1 (i386) using 5.2
Connection id: 38 Current database: gamedb Current user: SSL: Not in use Current pager: more Using outfile: '' Using delimiter: ; Server version: 5.1.50-log FreeBSD port: mysql-server-5.1.50 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /tmp/mysql.sock Uptime: 1 day 11 hours 46 min 52 sec
Threads: 2 Questions: 319 Slow queries: 0 Opens: 44 Flush tables: 1 Open tables: 13 Queries per second avg: 0.2 |
(3)set改变变量的值
mysql> show variables like 'char%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | +--------------------------+----------------------------------+ 8 rows in set (0.01 sec)
mysql> set character_set_connection=utf8; Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'char%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/share/mysql/charsets/ | +--------------------------+----------------------------------+ 8 rows in set (0.00 sec)
|
(4)查看mysql datadir的另类方法
mysql> show variables like 'datadir%'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | datadir | /var/db/mysql/ | +---------------+----------------+ 1 row in set (0.01 sec) |
阅读(503) | 评论(0) | 转发(0) |