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是最安全的选择,崩溃时,最多丢掉二进制日志中的一个语句或事务,但也是最慢的选择,成本昂贵