这篇文章将为大家详细讲解有关mysql如何源码安装5.7-17-19版本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
由于项目需要,现在要使用5.7.19版本的mysql
1:首先下载mysql 二进制安装文件
mysql-5.6.19.tar.gz
存放目录/mysql/mysql-5.6.19.tar.gz
tar -xf mysql-5.6.19.tar.gz
cd mysql-5.6.19
进行cmake,但是提示Cmake版本过低,至少需要2.8的版本
2:下载cmake
cmake-2.8.10.2.tar.gz
tar -xf cmake-2.8.10.2.tar.gz
./configure
make && make install
3:进行cmake
先创建mysql 安装目录以及数据文件存放目录
mkdir -p /mysql/mysql
mkdir -p /mysql/mysql/data
同时需要创建mysql 账号
useradd mysql
passwd mysql
再进行目录授权:
chown -R mysql:mysql /mysql
这个是5.7.17版本的编译安装
cd mysql-5.6.17
cmake \
-DCMAKE_INSTALL_PREFIX=/mysql/ \ //mysql软件安装的根目录
-DMYSQL_DATADIR=/mysql/data \ //mysql 数据文件存放目录
-DSYSCONFDIR=/etc \ //mysql 配置文件(my.cnf)目录
-DWITH_MYISAM_STORAGE_ENGINE=1 \ //存储引擎选项
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //以启用InnoDB、引擎支持:
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \ //启用加载本地数据
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \ //默认字符集
-DDEFAULT_COLLATION=utf8_general_ci //字符集校对
进行编译,编译时报错如下:
heck size of wctype_t - done
-- Check size of wint_t
-- Check size of wint_t - done
-- 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:411 (MYSQL_CHECK_EDITLINE)
这个报错是提示缺少ncurses-devel依赖包
进行下载:ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
rpm -ivh ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
warning: ncurses-devel-5.7-3.20090208.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing... ########################################### [100%]
1:ncurses-devel ########################################### [100%]
同时rm -rf CMakeCache.txt 然后进行重新cmake
完成之后,进行make && make install 进行mysql 安装
- Installing: /mysql/man/man1/msql2mysql.1
-- Installing: /mysql/man/man8/mysqld.8
-- Installing: /mysql/support-files/solaris/postinstall-solaris
算安装完成了,接下来就需要进行配置
这是5.7.17的步骤
4: 进入到mysql的安装目录,/mysql下:进行mysql 数据库初始化
scripts/mysql_install_db --basedir=mysql --datadir=/mysql/data --user=mysql //初始化mysql数据库
但是报错
[root@db_test scripts]# ./mysql_install_db --basedir=mysql --datadir=/mysql/data --user=mysql
FATAL ERROR: Could not find ./bin/my_print_defaults
cd /u01/soft/mysql-5.6.17/support-files
cp my-default.cnf /usr/local/mysql/my.cnf //copy配置文件
[root@db_test support-files]# chown -R mysql:mysql /mysql
vi /my.cnf 添加以下内容
[mysqld]
basedir = /mysql
datadir = /mysql/data
log-error = /mysql/mysql_error.log
pid-file = /mysql/mysql.pid
user = mysql
tmpdir = /tmp
初始化mysql数据库
[root@db_test scripts]# ./mysql_install_db --basedir=/mysql --datadir=/mysql/data --user=mysql
Installing MySQL system tables...2017-05-11 15:01:56 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-05-11 15:01:56 8161 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-05-11 15:01:56 8161 [Note] InnoDB: The InnoDB memory heap is disabled
2017-05-11 15:01:56 8161 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-05-11 15:01:56 8161 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-05-11 15:01:56 8161 [Note] InnoDB: Using CPU crc32 instructions
2017-05-11 15:01:56 8161 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-05-11 15:01:56 8161 [Note] InnoDB: Completed initialization of buffer pool
2017-05-11 15:01:56 8161 [Note] InnoDB: Highest supported file format is Barracuda.
2017-05-11 15:01:56 8161 [Note] InnoDB: Log scan progressed past the checkpoint lsn 1600617
2017-05-11 15:01:56 8161 [Note] InnoDB: Database was not shutdown normally!
2017-05-11 15:01:56 8161 [Note] InnoDB: Starting crash recovery.
2017-05-11 15:01:56 8161 [Note] InnoDB: Reading tablespace information from the .ibd files...
2017-05-11 15:01:56 8161 [Note] InnoDB: Restoring possible half-written data pages
2017-05-11 15:01:56 8161 [Note] InnoDB: from the doublewrite buffer...
或使用下列命令把mysql添加为系统服务
cd/mysql/support-files/
cp ./mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
在配置环境变量
export PATH=$PATH:/mysql/bin
[mysql@db_test ~]$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.17 Source distribution
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.00 sec)
5:5.7.19版本的安装步骤
5.7.19版本安装是时候提示
CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>
所以下载boost软件
[root@localhost ~]# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
tar -xf boost_1_59_0.tar.gz
cp -r boost_1_59_0 /usr/local/boost
进行安装
cmake \
-DCMAKE_INSTALL_PREFIX=/mysql/mysql \
-DMYSQL_DATADIR=/mysql/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DENABLE_DOWNLOADS=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/boost
完成之后,进行make && make install
时间很长,可以出去抽根烟。
配置环境变量
export PATH=/mysql/mysql/bin:/mysql/mysql/lib:$PATH
时间很长
cd mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/mysql/mysql --datadir=/mysql/data
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod a+x /etc/init.d/mysqld
再编辑/etc/my.cnf
[mysqld]
datadir=/mysql/data
socket=/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/mysql/mysql/logs/mysqld.log
pid-file=/mysql/mysql/logs/mysqld.pid
[client]
default-character-set=utf8
socket=/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/mysql/mysql.sock
启动mysql
[root@localhost mysql]# service mysqld start
Starting MySQL.2018-08-30T01:45:21.383785Z mysqld_safe error: log-error set to '/mysql/mysql/logs/mysqld.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/mysql/data/loca[失败]localdomain.pid)
报错,需要创建文件。
[root@localhost logs]# touch mysqld.log
[root@localhost logs]# touch mysqld.pid
[root@localhost logs]# chown -R mysql:mysql /mysql
[root@localhost mysql]# service mysqld start
Starting MySQL. [确定]
[root@localhost mysql]#
[mysql@localhost ~]$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.19 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
再修改root的密码
Database changed
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql> UPDATE user SET authentication_string=PASSWORD('shenzhen#123')WHERE user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| localhost | root | *4E25F9206A350692D2F5AC0512B41C69759FF312 |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+-----------+---------------+-------------------------------------------+
3 rows in set (0.00 sec)
mysql>
mysql>
关于“mysql如何源码安装5.7-17-19版本”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。