1,mysql设置更改root密码。
首先启动mysql。/etc/init.d/mysqld start。
首次进入数据库不需要密码: /usr/local/mysql/bin/mysql -uroot。这里使用的是绝对路径。退出时输入quit或者exit即可。
更改环境变量PATH,增加mysql的绝对路径。export PATH=$PATH:/usr/local/mysql/bin/。永久生效则需要把这条命令放到/etc/profile下面。接着source /etc/profile。
这样就可以使用mysql -uroot而不需要使用绝对路径。
mysqladmin -uroot password '123456' 给mysql的root账户设置密码123456。
mysql -uroot -p'12345' 使用密码登录。-u指定用户 -p指定密码,最好加单引号以防输入特殊字符出现问题。-p后面也可以不用加密码。
update user set password=password('root') where user='root'; //更改mysql中的root账户密码
2,连接mysql数据库。
使用mysql -u root -p 只可以连接到本地的数据库localhost。
mysql -uroot -p -h192.168.121.128 -P3306 连接到指定IP主机上的mysql。其中后边的 -P(大写) 用来指定远程主机mysql的绑定端口,默认都是3306, -h 用来指定远程主机的IP。
mysql -uroot -p123456 -S/tmp/mysql.sock 指定sock连接。
mysql -uroot -p123456 -e "show databases"
3,mysql常用命令。
(1)查询当前的库。mysql> show databases; //mysql的命令,结尾处需要加一个分号。
(2)查询某个库里的表。
首先需要切换到某个库里去: mysql> use mysql; Database changed。
列出表:mysql> show tables;
(3)查看某个表的全部字段。mysql> desc slow_log; 查看建表语句 mysql> show create table slow_log\G;
(4)查看当前是哪个用户:mysql> select user();
(5)查看当前所使用数据库:mysql> select database();
(6)创建一个新库:mysql> create database db1; Query OK, 1 row affected (0.05 sec)
(7)创建一个新表:
mysql> use db1;
Database changed
mysql> create table t1 (`id` int(4), `name` char(40));
Query OK, 0 rows affected (0.02 sec)
(8)查看当前数据库版本:
mysql> select version();
(9)查看当前mysql状态:
mysql> show status;
(10)查看mysql的参数:
mysql> show variables;
(11) 修改mysql的参数:在mysql命令行,“%” 类似于shell下的 *, 表示万能匹配。使用 “set global” 可以临时修改 某些参数,但是重启mysqld服务后还会变为原来的,所以要想恒久生效,需要在配置文件 my.cnf 中定义。
mysql> show variables like 'max_connect%';
mysql> set global max_connect_errors = 1000;
Query OK, 0 rows affected (0.01 sec)
mysql> show variables like 'max_connect_errors';
(12)查看当前mysql服务器的队列:使用它可以查看当前mysql在干什么,可以发现是否有锁表。
mysql> show processlist;show full processlist;
(13)创建一个普通用户并授权:
mysql> grant all on *.* to user1 identified by '123456';
Query OK, 0 rows affected (0.01 sec)
all 表示所有的权限(读、写、查询、删除等等操作), *.* 前面的 * 表示所有的数据库,后面的 * 表示所有的表,identified by 后面跟密码,用单引号括起来。这里的user1指的是localhost上的user1,如果是给网络上的其他机器上的某个用户授权则这样:
mysql> grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222';
Query OK, 0 rows affected (0.01 sec)
用户和主机的IP之间有一个@,另外主机IP那里可以用%替代,表示所有主机,例如:
mysql> grant all on db1.* to 'user3'@'%' identified by '231222';
Query OK, 0 rows affected (0.00 sec)
all可以替换为SELECT,UPDATE,INSERT。
mysql> show grants;