mysql的安装推荐使用二进制包的方式安装,且都是安装稳定,性能好的版本,一般大规模的部署都必须尽量做到自动化安装,否则安装部署的成本会比较高。
二进制包的安装:
建组,建用户:#groupadd mysql # useradd -g mysql mysql
解压安装程序:#tar -zxvf mysql.gar.gz #mv ./mysql /usr/local/mysql
初始化:#./scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
配置文件:#cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
修改目录权限:#chown -R mysql:mysql /usr/local/mysql/
修改环境变量:#vi /etc/profile #export PATH=/usr/local/mysql/bin:$PATH
启动数据库:#/usr/local/mysql/bin/mysqld --user=mysql 或者#/usr/local/mysql/bin/mysqld-safe --user=mysql或者在设置服务,也就是开启启动后,可以#service mysqld start/stop
设置开机启动:
#cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
#chown -R root:root /etc/rc.d/init.d/mysqld
#chmod 755 /etc/rc.d/init.d/mysqld
#chkconfig --add mysqld
#chkconfig --list mysqld
#service mysqld status
设置root密码:
#/usr/local/mysql/bin/mysqladmin -u root password 'your_password'
二进制安装需要进行安全强化:
#/usr/local/mysql/bin/mysql_secure_installation
mysql的用户授权:
grant all privileges on *.* to 'root'@'%' identified by '登陆密码';
flush privileges;#set password for 'root'@'%'=password('登陆密码');
mysql的简单命令:
通过ip,端口远程连接的命令:mysql -h ip_address -P your_port -u username -p
通过tcp/id协议进行本地连接的命令:mysql -u username -h 127.0.0.1 -P your_port
通过socket文件进行本地连接的命令:mysql -u username -S /path/to/mysql.sock
阅读在线帮助的命令:help contents
退出命令:exit
查询所有的数据库:show databases;
切换到某个数据库时的命令:use database_name;
显示当前数据库的命令:select database();
创建数据库的命令:create database database_name;
删除数据库的命令:drop database if exists database_name;
identified by 'your_password';
列出当前数据库下所有表的命令:show tables;/show full tables;
查看表结构的命令:desc table_name;
显示当前连接、客户端、数据库字符集等信息的命令:status;
显示mysql支持的排序方式的命令:show collation;
显示可用的引擎:show engines;
得到表引擎的命令:use information_schema;
select table_name,engine from information_schema.tables where table_schema='your database name';
查询是否自动提交事务的命令:select @@autocommit;
使用mysqldump命令:
用于备份数据库的命令:mysqldump -uroot -hex-blob database_name > database_name.sql;
增加压缩功能的命令:mysqldump -uroot -hex-blob database_name |gzip > database_name.gz;
恢复数据的命令:mysql < database_name.sql;
mysql的bin目录中的执行程序释义:
mysqld:mysql服务主程序
mysqld_safe:mysql服务启动脚本
mysql:mysql命令行工具
mysqladmin:mysql客户端(管理数据库)
perror:显示错误码的含义
mysqlbinlog:处理二进制日志文件的实用工具
mysql主要参数的设置:
1》innodb_buffer_pool_size(提升写性能)
理论上,将这个值设置的越高,访问数据的磁盘I/O就越少,常见的做法就是将这个值大于热点数据,这样就能获得较好的性能,如果不清楚环境的数据量和访问模式,建议将其设置为机器物理内存的70%~80%
2》innodb_log_file_size
建议将日志文件的大小设置为256MB或更大,这样可以满足一般情况下的需要
3》innodb_flush_log_at_trx_commit建议设置为2
默认值是1,当设置为2时,在每个事务提交时,日志缓冲被写到文件中,但不对日志文件做刷新到磁盘的操作,对日志文件的刷新每秒才发生一次,所以,理论上,操作系统崩溃或掉电只会丢失最后一秒的事务
4》sync_binlog,建议设置为0
如果是autocommit模式,没执行一个语句就会向二进制日志写入一次,否则每个事务写入一次。如果sync_binlog的值为正,则每当sync_binlog参数设定的语句或事务数被写入二进制日志后,mysql就会将它的二进制日志同步到硬盘上,默认值为0.不与硬盘同步,值为1是最安全的选择,崩溃时,最多丢掉二进制日志中的一个语句或事务,但也是最慢的选择,成本昂贵