您的位置:首页 > 数据库 > MySQL

在ubuntu上,通过源代码编译安装mysql-5.6.12

2013-07-25 11:10 411 查看
在ubuntu上,源代码编译安装mysql-5.6.12,记录。

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

下载 Generic Linux (Architecture Independent), Compressed TAR Archive

 

以下是过程

 

groupadd mysql //增加用户组

 

useradd -g mysql mysql 

 

mkdir /home/mysql/data //mysql数据库目录:data

 

mkdir /usr/local/server/mysql //安装目录

mkdir /usr/local/server/source //本人的源代码存放目录

root@ubuntu:/usr/local/server/source> tar -zxvf mysql-5.6.12.tar.gz

root@ubuntu:/usr/local/server/source> cd  mysql-5.6.12

//cmake编译代码 未安装cmake 可以用以下命令 sudo apt-get install cmake,在/usr/bin里能看到cmake,

//或者下载cmake源码包 cmake-2.8.7.tar.gz,解压后进入解压目录运行./configure  make && make install就搞定

root@ubuntu:/usr/local/server/source/mysql-5.6.12> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/server/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -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



root@ubuntu:/usr/local/server/source/mysql-5.6.12>make

root@ubuntu:/usr/local/server/source/mysql-5.6.12>make install

root@ubuntu:/usr/local/server/source/mysql-5.6.12>cd /usr/local/server/mysql  (安装成功后会生成,相关可执行文件)

 root@ubuntu:/usr/local/server/mysql>ls

 bin  COPYING  data  docs  include  INSTALL-BINARY  lib  man  my.cnf  my-new.cnf  mysql-test  README  scripts  share  sql-bench  support-files

 //重要的一个步骤 初始化数据库

 

 root@ubuntu:/usr/local/server/mysql>./scripts/mysql_install_db --user=mysql --basedir=/usr/local/server/mysql --datadir=/home/mysql/data 

 

//启动服务

 root@ubuntu:/usr/local/server/mysql>./support-files/mysql.server start 

 

 //验证是否安装成功

 

root@ubuntu:/usr/local/server/mysql>./bin/mysql 

其他操作

3,客户端操作

 >mysql -u root -p 

增加用户及权限(否则外部主机无法访问到该数据库服务器)

授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

1.1 grant all on  *.* to  'baseuser'@'%' identified by 'base0001'

GRANT ALL PRIVILEGES ON *.* TO 'baseuser'@'%' IDENTIFIED BY 'base0001' WITH GRANT OPTION;

如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.10.40.54' IDENTIFIED BY '123456' WITH GRANT OPTION;

修改root密码

整理了以下四种在MySQL中修改root密码的方法,可能对大家有所帮助!

方法1: 用SET PASSWORD命令

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

方法4:

grant all on  *.* to  'root'@'localhost%' identified by 'root0001'

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;

配置文件:

 让MYSQL不区分表名大小写的方法其实很简单:

  1.用ROOT登录,修改/etc/my.cnf (配置文件可能路径不同)

  2.在[mysqld]下加入一行:lower_case_table_names=1

  3.重新启动数据库即可

  注意:(有可能会出错)如果数据库已存在,有bug.

 

  

  

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息