MySQL是一种广泛使用的关系型数据库管理系统,它以开源、高性能和高可靠性著称,以下是MySQL使用方法的经验和汇总:
连接MySQL
连接到本机上的MySQL
1、打开DOS窗口,进入MySQL/bin
目录。
2、键入命令mysql uroot p
,回车后提示输入密码,如果刚安装好MySQL,超级用户root没有密码,直接回车即可进入MySQL,提示符为mysql>
。
连接到远程主机上的MySQL
1、假设远程主机IP为172.16.24.101
,用户名为root
,密码为111111
,键入以下命令:
mysql h 172.16.24.101 u root p111111
退出MySQL
键入命令exit
,然后回车即可退出MySQL。
修改密码
给root加个新密码
1、在DOS下进入mysql/bin
目录,然后键入以下命令:
mysqladmin u root password 111111
修改root的密码
1、键入以下命令:
mysqladmin u root p 111111 password dzf111
增加新用户
增加一个用户并赋予权限
1、用root用户连入MySQL,然后键入以下命令:
grant select,insert,update,delete on *.* to 'test1'@'%' identified by 'abc';
2、该命令增加了一个用户test1
,密码为abc
,可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
3、为了安全起见,可以限制用户只在本地登录:
grant select,insert,update,delete on mydb.* to 'test2'@localhost identified by 'abc';
4、如果不想用户有密码,可以再打一个命令将密码消掉:
grant select,insert,update,delete on mydb.* to 'test2'@localhost identified by '';
MySQL优化经验
系统参数优化
1、调整缓冲池大小:根据服务器内存情况调整innodb_buffer_pool_size
的大小,一般设置为物理内存的60%80%。
2、连接数优化:调整max_connections
的值,确保在高并发情况下有足够的连接数。
3、查询缓存优化:设置query_cache_size
和query_cache_limit
,以提高查询缓存的效率。
索引优化
1、避免全表扫描:在where
及order by
涉及的列上建立索引,可以大大加快数据的检索速度。
2、合理使用索引:并不是所有索引对查询都有效,当索引列有大量数据重复时,SQL查询可能不会去利用索引。
3、控制索引数量:一个表的索引数最好不要超过6个,太多则应考虑一些不常使用到的列上建的索引是否有必要。
4、避免更新clustered索引数据列:因为clustered索引数据列的顺序就是表记录的物理存储顺序,一旦该列值改变将导致整个表记录的顺序的调整,会耗费相当大的资源。
5、避免在where子句中使用!=或<>操作符:否则将放弃使用索引而进行全表扫描。
6、避免在where子句中对字段进行null值判断:否则将放弃使用索引而进行全表扫描。
7、尽量避免在where子句中使用or来连接条件:否则将放弃使用索引而进行全表扫描。
8、like语句的使用:like 'abc%'会走索引,但'%abc%'将放弃使用索引而进行全表扫描。
9、慎用in和not in:对于连续的数值,能用between就不要用in了,用exists代替in也是一个好的选择。
10、避免在where子句中对字段进行表达式操作:这将放弃使用索引而进行全表扫描。
11、避免在where子句中对字段进行函数操作:这将放弃使用索引而进行全表扫描。
12、不要在where子句中的“=”左边进行函数、算术运算或其他表达式运算:否则系统将可能无法正确使用索引。
常用MySQL命令汇总
命令 | 描述 |
mysql uroot p | 连接到本机MySQL数据库 |
mysqladmin u root p old_password password new_password | 修改MySQL密码 |
grant ... on ... to ... identified by "password"; | 增加新用户并赋予权限 |
exit | 退出MySQL |
show databases; | 显示所有数据库 |
use database_name; | 选择要使用的数据库 |
show tables; | 显示当前数据库中的所有表 |
describe table_name; | 显示表的结构 |
select * from table_name; | 从表中选择所有数据 |
insert into table_name (column1, column2) values (value1, value2); | 向表中插入数据 |
update table_name set column1 = value1 where condition; | 更新表中的数据 |
delete from table_name where condition; | 删除表中的数据 |
create database database_name; | 创建数据库 |
drop database database_name; | 删除数据库 |
truncate table table_name; | 清空表中的数据 |
alter table table_name add column column_name datatype; | 添加列 |
alter table table_name drop column column_name; | 删除列 |
alter table table_name modify column column_name datatype; | 修改列的数据类型 |
FAQs:
1、如何连接到远程MySQL服务器?:可以通过命令mysql h <远程主机IP> u <用户名> p<密码>
连接到远程MySQL服务器,mysql h 172.16.24.101 u root p111111
。
2、如何增加新用户并限制其访问权限?:可以使用命令grant select,insert,update,delete on mydb.to 'username'@'localhost' identified by 'password';
增加新用户并限制其访问特定数据库,例如grant select,insert,update,delete on mydb.* to 'test2'@localhost identified by 'abc';
。