最近在做项目,我担任了我们项目组数据库负责人,在管理mysql数据库这段时间,更加深入的学习了mysql数据的操作,感触很深,每次接到一个新任务,都是自己的一个新的尝试,感谢组织给我这次机会。下面是对最近对mysql数据库的操作做的一个详细的汇总,留给自己做个纪念!
一、mysql服务的操作:
启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
二、mysql数据库的导入导出:
导出数据:(见图1)
(1)导出数据,包括表结构和表数据:
进入Linux系统的命令控制台:
输入/usr/local/mysql/bin/mysqldump –u root –p aaa > /usr/local/itoo/aaa.sql,然后回车提示输入密码,输入密码之后回车就表示导出成功。(表示把脚本文件导出到了/usr/local/itoo/目录下)
(2)导出表结构:
进入Linux系统的命令控制台:
输入/usr/local/mysql/bin/mysqldump –u root –p –d aaa > /usr/local/itoo/aaa.sql,然后同上。
导入数据:(见图2)
进入Linux命令控制台,进到mysql的bin目录,然后输入mysql –u root –p,回车之后输入密码,进入mysql控制台:
1、然后创建一个新的库:create database aaa;
2、选择新创建的数据库:use aaa;
3、设置数据库的编码格式:setnames utf8;
4、导入数据 source /usr/local/itoo/aaa.sql;
这里只配了部分操作的图:
图1导出数据
图2 导入数据
三、mysql的用户管理和权限设置
用户管理
mysql>use mysql;
查看
mysql> selecthost,user,password from user ;
创建
mysql> create user root IDENTIFIED by 'root';
修改
mysql>rename user feng to newuser;
删除
mysql>drop usernewuser;
更改密码
mysql> set password for root =password('root');
mysql> update user set password=password('root') where user='root'
查看用户权限
mysql> show grants for root;
赋予权限
mysql> grant select ondmc_db.* to root;
回收权限
mysql> revoke select ondmc_db.* from root; //如果权限不存在会报错
上面的命令也可使用多个权限同时赋予和回收,权限之间使用逗号分隔
mysql> grant select,update,delete ,insert ondmc_db.* to zx_root;
如果想立即看到结果使用下面命令更新
flush privileges ;
四、设置mysql的远程访问:(见图3)
进入mysql,找到要使用的库,使用如下命令:
GRANT ALL PRIVILEGES ON *.* TO ‘root@’’%’ IDENTIFIED BY “123456” WITH GRANT OPTION;
然后执行flushprivileges;可以立即使用
图3设置mysql远程访问
五、查看mysql的端口号:(见图4)
进入mysql,使用下面命令进行查看mysql的端口号
show global varialeslike ‘port’;
图4 查看mysql的端口号
图4 查看mysql的端口号
六、更改mysql的默认引擎为innodb(见图5)
进入mysql控制窗口,输入如下命令即可:
show engines;
如果出现InnoDB|YES说明此数据库支持InnoDB引擎
图5 查看mysql支持的引擎
如果InnoDB不是默认引擎,我们需要修改为默认引擎,修改my.ini中的[mysqld]下面加上default-storage-engine-INNODB,然后重启mysql服务器 servicemysqld restart。
六、mysql设置不区分表名的大小写:
用root帐号登录后,在/etc/my.cnf 中的[mysqld]后添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功。
七、mysql数据库查看是否支持分区:(见图6)
进入mysql,使用表,用SHOW VARIABLES LIKE‘%partition%’;
图6 mysql数据库查看是否支持分区
mysql数据库分表分区可以适当的解决高并发,如果访问量大可以采用分表,这和mysql集群很相似,如果访问量不大,但是数据量很大,可以采用分区。