Ubuntu13.04下源码安装mysql

来源:互联网 发布:退休工龄算法 编辑:程序博客网 时间:2024/04/28 18:41

内容源自网上以及自己的安装过程整理而成


准备工作 
1.创建用户组和用户
groupadd mysql
useradd -g mysql mysql -s /usr/sbin/nologin

2.安装需要的包
sudo apt-get install cmake
sudo apt-get install make
sudo apt-get install bison
sudo apt-get install bzr
sudo apt-get install libncurses5-dev
sudo apt-get install g++

3.下载mysql

下载mysql源码包,mysql-5.6.12.tar.gz

 

下载时注意别选成其他的linux安装包,不然编译肯定报错。选择平台的下拉列表里选择 Source Code,Select Platform: Source Code ,下载 Generic Linux (Architecture Independent), Compressed TAR Archive


4.把mysql-5.6.12.tar.gz拷贝到/usr/local/devtools/目录下


5.在/usr/local/devtools/目录下

mkdir mysql  

cd mysql 

mkdir data


6.解压mysql-5.6.12.tar.gz

tar -xvzf mysql-5.6.12.tar.gz

cd mysql-5.6.12


cmake -DCMAKE_INSTALL_PREFIX=/usr/local/devtools/mysql -DMYSQL_DATADIR=/usr/local/devtools/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_bin -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 

(//以上参数分别为安装目录、数据目录、字符集、扩展的字符集、MYISAM/INNODB存储、是否允许执行本地load data infile,附参数说明

  • CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
  • DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
  • DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
  • ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
  • WITH_COMMENT:指定编译备注信息
  • WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被编译至服务器,不需要特别指定。
  • WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
  • SYSCONFDIR:初始化参数文件目录
  • MYSQL_DATADIR:数据文件目录
  • MYSQL_TCP_PORT:服务端口号,默认3306
  • MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock)
PS:这里需要注意-DDEFAULT_COLLATION=utf8_bin  utf8_bin是区分大小写的,而 utf8_general_ci是不区分的,关于MySQL大小写问题请参照http://blog.csdn.net/steveguoshao/article/details/37531265

make

make  install


安装完后,复制配置文件,启动前初始化 

cd /mysql-5.6.12/ 

cp suport-files/mysql-default.cnf  my.cnf (mysql配置文件,可以选择my-medium.cnf)

 

/usr/local/devtools/mysql/scripts/mysql_install_db  --defaults-file=/usr/local/devtools/mysql/my.cnf  --user=mysql --datadir=/usr/local/devtools/mysql/data

 //defaults-file表示指定默认的配置文件,如果不指定,系统默认的优先级是依次使用/etc/my.cnf,/etc/mysql/my.cnf,mysql安装目录下my.cnf作为mysql的配置文件,那之前make的那些参数就白设置了。。。

 //如果不指定 可以通过cp my.cnf /etc/my.cnf 将etc目录下得配置文件覆盖

在root用户下出现bash: scripts/mysql_install_db: Permission denied  chonw +777 /usr/local/devtools/mysql/scripts/mysql_install_db

FATAL ERROR: Could not find ./share/fill_help_tables.sql 

启动mysql

 方法一:

 sudo bin/mysqld_safe --user=mysql &

 方法二 

cp support-files/mysql.server /etc/init.d/mysql

 sudo /etc/init.d/mysql start   


由于进行了 

$ cp support-files/my-medium.cnf /etc/my.cnf //
这个操作,我的系统在/etc 和 /etc/mysql 目录下分别有一份my.cnf配置文件, 但是/etc/mysql目录下的配置文件,中的相关路径设置是错误的,导致启动失败。

/etc/mysql目录下的配置文件删除,即恢复正常。

添加mysql软链接

sudo ln -s /usr/local/devtools/mysql/bin /usr/sbin/mysqlsudo ln -s /usr/local/devtools/mysql/bin/mysqladmin /usr/sbin/mysqladmin
修改数据库root用户的密码

sudomysqladmin -u root password 'root' 

登录

sudomysql -u root -p 

     

查看有哪些数据库

mysql> show databases;    


查看有哪些mysql用户

 use mysql;   

 mysql> select user,host,password from user;


删除密码为空的用户
 delete from user where password='';






原创粉丝点击