今天是: 收藏本站 设为主页
网站首页 >  技术专栏  >  linux  > 

ubuntu 安装mysql 5.5.28 编译安装

日期:2013-08-09  点击率:1287


安装环境:ubuntu 桌面版12.10

安装版本:mysql-5.5.28.tar.gz

使用root用户安装

  1. su root  
在出现的提升中输入密码

1.安装必备工具

1.1.安装cmake编译器

  1. apt-get install cmake  

1.2.安装libncurses5-dev包

  1. apt-get install libncurses5-dev  

1.3.安装bison

  1. apt-get install bison  

1.4 安装g++

  1. apt-get install g++  

2.安装mysql

2.1 下载mysql

  1. cd /usr/local/src  
  2. wget http://www.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz/from/http://cdn.mysql.com/ -O mysql-5.5.28.tar.gz  

2.2 添加必要的组和拥有者

  1. groupadd mysql  
  2. useradd -r -g mysql mysql  

2.3 解压MySQL
  1. tar -zvxf mysql-5.5.28.tar.gz  

2.4、配置编译
  1. mkdir /usr/local/mysql  
  2. mkdir /usr/local/mysql/data  
  3. cd /usr/local/src/mysql-5.5.28  

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/usr/local/mysql/data \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1

  1. make  
  2. make install  

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data         //数据库存放目录
-DDEFAULT_CHARSET=utf8                        //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci            //校验字符
-DEXTRA_CHARSETS=all                            //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1                        //允许从本地导入数据

注意事项:

如果出现错误,重新编译时,需要清除旧的对象文件和缓存信息(以下命令)。 
  1. rm -f  CMakeCache.txt  

2.5、设置目录权限

  1. cd /usr/local/mysql  
  2. chown -R mysql:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql  

2.6、配置文件
  1. cp support-files/my-medium.cnf /etc/my.cnf //这个配置仅适合小内存系统(32M - 64M)  

打开如下注释(红色字体必改):
[mysqld]
default-character-set = utf8   #添加编码支持

long_query_time=1#查询语句最长时间记录查询SQL语句日志
log-slow-queries=/usr/local/mysql/data/query.log

max_connections = 10000     #根据服务器性能调节
basedir = /usr/local/mysql #设置安装目录,这样在系统启动时才能正确运行到/etc/rc.d/init.d/mysql start
log-error=/usr/local/mysql/data/error.log     #错误日志
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:1G:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 1024M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_open_files=300

[client] 
default-character-set = utf8    #添加编码支持


说明(本部分红色字体只是说明):

2.61、innodb_buffer_pool_size = 4G
#InnoDB用于缓存数据、索引、锁、插入缓冲、数据字典等
#如果是专用的DB服务器,且以InnoDB引擎为主的场景,通常可设置物理内存的50%
#如果是非专用DB服务器,可以先尝试设置成内存的1/4,如果有问题再调整
#默认值是8M,非常坑X,这也是导致很多人觉得InnoDB不如MyISAM好用的缘故
2.62、innodb_data_file_path = ibdata1:1G:autoextend
#InnoDB共享表空间初始化大小,默认是 10MB,也非常坑X,改成 1GB,并且自动扩展

2.63、innodb_log_buffer_size = 64M
#InnoDB的log buffer,通常设置为 64MB 就足够了

2.64、innodb_log_file_size = 256M
#InnoDB redo log大小,通常设置256MB 就足够了

2.65、innodb_log_files_in_group = 2
#InnoDB redo log文件组,通常设置为 2 就足够了

2.66、innodb_file_per_table = 1
#启用InnoDB的独立表空间模式,便于管理

2.67、innodb_status_file = 1
#启用InnoDB的status file,便于管理员查看以及监控等


2.7、设置启动脚本

  1. cp support-files/mysql.server /etc/init.d/mysqld  
  2. chmod 755 /etc/init.d/mysqld  


2.8、创建系统数据库的表

  1. cd /usr/local/mysql  
  2. ./scripts/mysql_install_db --user=mysql --ldata=/usr/local/mysql/data  

2.9、启动数据库

  1. /etc/init.d/mysqld start  

3、给linux默认mysql设置root密码,开启远程访问

3.1、登录(默认没有密码的,直接回车)

  1. /usr/local/mysql/bin/mysql -u root -p  
3.2、运行命令(123456就是设置的新密码)

方法一

  1. mysql>use mysql;  
  2. mysql>UPDATE user SET Password = password ( '123456' ) WHERE User = 'root' ;  

方法二

  1. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');  

然后刷新缓存

  1. mysql>flush privileges;  

3.3、开启远程访问

方法一

  1. mysql>grant all privileges on *.* to 'root' @'%' identified by '123456';  
  2. mysql>flush privileges;  

方法二

  1. use mysql;  
  2. update user set host = '%' where user = 'root';  
  3. FLUSH PRIVILEGES;  
注意退出mysql命令是

  1. mysql>quit;  


4、最后重新启动一下

  1. /etc/init.d/mysqld restart  

数据库命令,开启,关闭,重启

  1. /etc/init.d/mysqld start  
  2. /etc/init.d/mysqld stop  
  3. /etc/init.d/mysqld restart  

相关数据库命令:在 后面增加|more #逐页显示,空格下一页

  1. Mysql> show status ——显示状态信息(扩展show status like ‘XXX’)  
  2.   
  3. Mysql> show variables ——显示系统变量(扩展show variables like ‘XXX’)  
  4.   
  5. Mysql> show innodb status ——显示InnoDB存储引擎的状态  
  6.   
  7. Mysql> show processlist ——查看当前SQL执行,包括执行状态、是否锁表等  
  8.   
  9. Shell> mysqladmin variables -u username -p password——显示系统变量  
  10.   
  11. Shell> mysqladmin extended-status -u username -p password——显示状态信息  




下一篇:Bootstrap 3.0 正式版发布   上一篇:Ubuntu configure: PHP编译出现的几个error