编译安装mysql
1、下载地址: http://downloads.mysql.com/archives/community/
2、编译 Mysql5.5.35 的参数: 参考资料: 解压压缩包 mysql-5.5.35/INSTALL-SOURCE
a. 安装目录: /opt/app/mysql
b. 编译前的准备:
b1. 安装编译工具 cmake: sudo apt-get install cmake
b2. 安装编译工具 libaio-dev: sudo apt-get install libaio-dev
c. 编译安装步骤:
# Preconfiguration setup
shell> sudo groupadd mysql
shell> sudo useradd -r -g mysql mysql
# Beginning of source-build specific instructions
shell> sudo tar zxvf mysql-VERSION.tar.gz
shell> cd mysql-VERSION
shell-> cmake . -DCMAKE_INSTALL_PREFIX=/opt/app/mysql -DMYSQL_DATADIR=/opt/app/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
-> 出现如下问题:
root@lvcy-VirtualBox:/home/lvcy/test/mysql-5.5.35# cmake . -DCMAKE_INSTALL_PREFIX=/opt/app/mysql -DMYSQL_DATADIR=/opt/app/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
-- Running cmake version 3.5.1
-- MySQL 5.5.35
-- Packaging as: mysql-5.5.35-Linux-x86_64
-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (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:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:345 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
See also "/home/lvcy/test/mysql-5.5.35/CMakeFiles/CMakeOutput.log".
See also "/home/lvcy/test/mysql-5.5.35/CMakeFiles/CMakeError.log".
-> 问题分析: 根据错误提示可知: Curses library not found 缺少curses包
-> 解决方法: sudo apt-get install ncurses-dev
shell> make
shell> make install
# End of source-build specific instructions
# Postinstallation setup
shell> cd /opt/app/mysql
shell> sudo chown -R mysql .
shell> sudo chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> sudo chown -R root .
shell> sudo chown -R mysql data
# Next command is optional
shell> sudo cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> sudo cp support-files/mysql.server /etc/init.d/mysql.server
3、配置文件的修改
a. 修改/etc/my.cnf,添加如下语句:
tmpdir=/opt/app/mysql/tmp/
basedir=/opt/app/mysql
datadir=/opt/app/mysql/data
建立相关目录,并将所有者修改成mysql。
b. 修改 /etc/init.d/mysql,将 basedir 和 datadir 的值修改为:
basedir=/opt/app/mysql
datadir=/opt/app/mysql/data
c. 修改 /etc/profile,添加 export PATH=$PATH:/opt/app/mysql/bin
d. 执行:mysqladmin -u root password '123456' # 创建root账号及密码执行 source /etc/profile
e. su 到 mysql 用户,进入mysql安装目录 /opt/app/mysql/bin,
执行:./mysql -uroot -p123456 即可进入mysql命令行
4、测试 mysql:
启动 mysqld: /opt/app/mysql/bin/mysqld --user=mysql &
连接 mysql: /opt/app/mysql/bin/mysql -uroot -p123456
a. 创建数据库:
create table news_tbl (
ID INT NOT NULL AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
content TEXT NOT NULL,
date_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (ID)
);
create table sts_tbl (
ID INT NOT NULL AUTO_INCREMENT,
ip VARCHAR(50) NOT NULL,
uid VARCHAR(50) NOT NULL,
lo VARCHAR(500) NULL,
PRIMARY KEY (ID)
);
b. 插入数据:
mysql> insert into news_tbl (`title`, `content`) values ('Test', 'News Test Content!');
c. 查看数据库字符集: show variables like 'character%';