Linux下mysql源码安装

1.装备安装包并安装,由于mysql5.5以后是通过cmake来编译的


下载cmake

http://www.cmake.org/download/

下载mysql

http://dev.mysql.com/downloads/mysql/


(1)安装cmake

#tar -zxvf cmake-3.3.0-rc2
#cd cmake-3.3.0-rc2
#./configure
#make
#make install


(2)创建mysql的安装目录及数据库存放目录

#madir -p /usr/local/mysql   #mysql安装目录
#mkdir -p /data/mysql/data   #存放数据库文件目录


(3)创建mysql用户及用户组

#groupadd mysql  #新建mysql用户组
#useradd -r -g mysql mysql #新建系统用户mysql并指定mysql用户组


(4)安装mysql

#tar -zxvf mysql-5.6.25.tar.gz
# cd mysql-5.6.25
#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   #安装路径
-DMYSQL_DATADIR=/data/mysql/data   \   #数据文件存放位置
-DSYSCONFDIR=/etc         \     #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1    \         #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \       #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \          #支持Memory引擎
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      \   #连接数据库socket路径
-DMYSQL_TCP_PORT=3306                  \    #端口
-DENABLED_LOCAL_INFILE=1            \       #允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1  \   #安装支持数据库分区
-DEXTRA_CHARSETS=all                  \     #安装所有的字符集
-DDEFAULT_CHARSET=utf8              \       #默认字符
-DDEFAULT_COLLATION=utf8_general_ci     #校验字符
#make
#make install



---提示错误01----

Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH) 

CMake Error at cmake/readline.cmake:85 (MESSAGE):

  Curses library not found.  Please install appropriate package,


      remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

Call Stack (most recent call first):

  cmake/readline.cmake:128 (FIND_CURSES)

  cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)

  CMakeLists.txt:409 (MYSQL_CHECK_EDITLINE)


那就是ncurses未安装

下载 http://ftp.gnu.org/pub/gnu/ncurses/

#tar zxvf ncurses-5.9.tar.gz
# cd ncurses-5.9
# ./configure
# make
# make install

---提示错误02----

Warning: Bison executable not found in PATH


这是未安装Bison

下载:http://ftp.gnu.org/gnu/bison/

# tar -zxvf bison-3.0.tar.gz
# cd bison-3.0
# ./configure
# make
# make install

完成后再重新走(4)的步骤

------------


2.配置

(1)设置目录权限

# cd /usr/local/mysql/
# chown -R root:mysql .
# chown -R mysql:mysql /data/mysql/data


(2)添加配置文件

# cp support-files/my-default.cnf /etc/my.cnf #将mysql的启动服务添加到系统服务中


(3)创建系统数据库的表

# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data/

如果报[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. 

Please use --explicit_defaults_for_timestamp server option 

(see documentation for more details).错误 

# vim /etc/my.cnf  找到[mysqld]设置项,添加以下代码:
explicit_defaults_for_timestamp=true #开启查询缓存


(4)设置环境变量

# vi /root/.bash_profile


在PATH=$PATH:$HOME/bin添加参数为:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

#source /root/.bash_profile


(5)手动启动mysql

# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &   #启动MySQL,但不能停止
#ps -ef | grep mysql #测试MySQL是否启动
#netstat -tnl | grep 3306#查看端口是否运行

启动日志写在此文件下:/data/mysql/data/hostname.err

关闭MySQL服务

#./bin/mysqladmin -u root -p shutdown #关闭


(6)配置命令启与开机启动

# cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysql #将mysql的启动服务添加到系统服务中,其中服务名称为mysql
# service mysql start #启动
# service mysql stop  #关闭
# service mysql restart #关闭
# chkconfig --add mysql   #添加开机启动
# chkconfig mysql off    #取消开机启动



(7)修改root密码并开启远程连接

#mysql -u root mysql
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码';  #为root添加远程连接的能力。
mysql>update user set Password = password('密码') where User='root';
mysql>select Host,User,Password  from user where User='root'; 
mysql>flush privileges;
mysql>exit

重新登录:mysql -u root -p


若还不能进行远程连接,则关闭防火墙

# /etc/rc.d/init.d/iptables stop


注:如果不能远程连接,出现错误mysql error number 1130,则加入下面语句试试:

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;


MYSQL权限详细分类:

全局管理权限: 

FILE: 在MySQL服务器上读写文件。 

PROCESS: 显示或杀死属于其它用户的服务线程。 

RELOAD: 重载访问控制表,刷新日志等。 

SHUTDOWN: 关闭MySQL服务。

数据库/数据表/数据列权限: 

ALTER: 修改已存在的数据表(例如增加/删除列)和索引。 

CREATE: 建立新的数据库或数据表。 

DELETE: 删除表的记录。 

DROP: 删除数据表或数据库。 

INDEX: 建立或删除索引。 

INSERT: 增加表的记录。 

SELECT: 显示/搜索表的记录。 

UPDATE: 修改表中已存在的记录。

特别的权限: 

ALL: 允许做任何事(和root一样)。 

USAGE: 只允许登录--其它什么也不允许做。



你可能感兴趣的:(Linux下mysql源码安装)