mysql应用管理及进阶实战
prompt \u@ceshi \r:\m:s-> ###临时改变命令提示符
如果想永久生效放入my.conf里面的 [mysql]下面 prompt \u@ceshi \r:\m:s->
mysql登录
# mysql -h 127.0.0.1 -u mysql -P 3000 #远程连接 IP + 端口
mysql -h localhost -u root -S /data/ops/app/mysql-5.6.23/3307/3307.sock
MySQL修改root密码的多种方法 在 Navicat for MySQL 下面直接执行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 就可以 方法1: 用SET PASSWORD命令 mysql -u root mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass'); 方法2:用mysqladmin mysqladmin -u root password "newpass" 如果root已经设置过密码,采用如下方法 mysqladmin -u root password oldpass "newpass" 方法3: 用UPDATE直接编辑user表 mysql -u root mysql> use mysql; mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root'; mysql> FLUSH PRIVILEGES; 在丢失root密码的时候,可以这样 mysqld_safe --skip-grant-tables& mysql -u root mysql mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root'; mysql> FLUSH PRIVILEGES;
##生产环境
./mysqld_safe --defaults-file=/data/ops/app/mysql-5.6.23/etc/3308.cnf --skip-grant-tables --user=mysql&
mysql> update mysql.user set password=password('123456') where user='root';
mysql> flush privileges;
mysqladmin -h127.0.0.1 -uroot -p shutdown ###输入密码123456
mysql -h127.0.0.1 -uroot -P3003 -p #输入密码登录成功123456
sql---日常操作
mysql> select user,host,password from mysql.user order by user; ##查询并排序 mysql> delete from mysql.user where user=' '; ##删除用户 mysql> create database test; 创建数据库 mysql> show create database test\G #查看创建数据库,默认创建字符集latin1 mysql> create database test_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; ###创建指定的字符集数据库 mysql> show create dabases test_gbk\G ##查看创建的数据库发现字符集变成gbk mysql> create database test_utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; ###创建utf8数据库 mysql> show create dabases test_utf8\G ##查看创建的数据库字符集变成utf8 ##提示 字符集的不一致是数据库中午乱码的罪魁祸首,有关字符集的看后面 ##提示 如果变异的时候指定了字符集 以后创建数据库就不需要指定了 企业里: 1根据开发的程序确定字符集(建议用utf8) 2.编译的时候指定字符集 3.编译的时候没有指定字符集或者指定了和程序不同的字符集,如果解决? ###指定字符集创建数据库即可。 显示数据库 show databases; select database(); 删除数据库 mysql> drop database test; 切换数据库 use test_utf8; 查看版本 select version(); 查看当前用户 select user(); 查看当前时间 select now(); 创建用户 mysql> create user 'haha'@'localhost' identified by '123'; 删除用户 mysql> drop user 'haha'@'localhost'; 创建并授权 grant all privileges on test.* to oldboy@'localhost' identified by 'oldboy123'; 查看用户权限 mysql> show grants for oldboy@localhost; 只授权 grant all ON test.* to 'haha'@'localhost'; 远程授权 mysql> create user test@'10.0.0.%' identified by 'test'; 回收权限 mysql> show grants for oldboy@localhost; +---------------------------------------------------------------------------------------------------------------+ | Grants for oldboy@localhost | +---------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'oldboy'@'localhost' IDENTIFIED BY PASSWORD '*FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515' | | GRANT ALL PRIVILEGES ON `test`.* TO 'oldboy'@'localhost' | +---------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec) mysql> revoke insert on test.* from 'oldboy'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> show grants for oldboy@localhost; 企业环境尽量最小化权限,只给增删改查,把创建删除收回。 创建表 mysql> create table tutorials_tbl( tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submission_date DATE, PRIMARY KEY ( tutorial_id ) ); 查看表结构 mysql> desc tutorials_tbl; mysql> show create table tutorials_tbl;