mysql for linux

介绍


这篇文档是自己学习mysql编译安装而作,mysql的编译安装会受到各种版本的影响,只要版本对的话,还是很顺利的。

最开始编写的文档里面遇到了一些mysql编译安装的问题,可以作为参考:

https://www.jianshu.com/p/720cb586d6f0

 

版本信息


 Ubuntu 16.04

mysql-5.7.21

Boost 1.59.0

gcc  5.4.0

 

mysql 的编译安装


 STEP 1 配置环境

sudo apt-get update

sudo apt-get install cmake

sudo apt-get install git

sudo apt-get install gcc g++              

sudo apt-get install libncurses5 libncurses5-dev                

sudo apt-get install bison              

STEP 2 下载boost

cd /usr/local

sudo wght https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

sudo tar -xzvf boost_1_59_0.tar.gz

sudo mv boost_1_59_0.tar.gz boost

STEP 3 编译安装mysql

# 下载mysql

cd /usr/local

sudo wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

sudo tar -xzvf mysql*.tar.gz

# 添加用户

sudo groupadd mysql

sudo useradd -r -g mysql mysql

# 创建mysql的安装目录

sudo mkdir /usr/local/mysql

 # 创建存放mysql数据的文件

sudo mkdir /usr/local/mysql/data

# 更改用户

sudo chown -R mysql.mysql /usr/local/mysql

 # 预编译mysql

cd /usr/local/mysql-5.7.21

sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/loca/mysql/data -DWITH_BOOST=/usr/local/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -DEXTRA_CHARSETS=all

   预编译的各项参数:

            -DCMAKE_INSTALL_PREFIX:安装路径

            -DMYSQL_DATADIR:数据存放目录

            -DWITH_BOOST:boost源码路径 

            -DSYSCONFDIR:my.cnf配置文件目录

            -DEFAULT_CHARSET:数据库默认字符编码

            -DDEFAULT_COLLATION:默认排序规则

            -DENABLED_LOCAL_INFILE:允许从本文件导入数据

            -DEXTRA_CHARSETS:安装所有字符集

# 编译安装

sudo make

sudo make install

STEP 3 初始化mysql

cd /usr/local/mysql

sudo ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

STEP 3 my.cnf配置文件

cd /etc

sudo touch my.cnf

sudo vim my.cnf

 

[client]

port=3306

socket=/usr/local/mysql/mysqld.sock

[mysqld]

port=3306

socket=/usr/local/mysql/mysqld.sock

pid-file=/usr/local/mysql/Data/mysql.pid

basedir=/usr/local/mysql

datadir=/usr/local/mysql/Data

 STEP 4 开启mysql

 配置完my.cnf文件后,即可开启mysql

cd /usr/local/mysql/bin

sudo ./mysqld --user=mysql

2018-07-22 20:49:27 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-07-22 20:49:27 0 [Note] mysqld (mysqld 5.6.25-log) starting as process 11891 ...
2018-07-22 20:49:27 11891 [Note] Plugin 'FEDERATED' is disabled.
2018-07-22 20:49:27 11891 [Note] InnoDB: Using atomics to ref count buffer pool pages
2018-07-22 20:49:27 11891 [Note] InnoDB: The InnoDB memory heap is disabled
2018-07-22 20:49:27 11891 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2018-07-22 20:49:27 11891 [Note] InnoDB: Memory barrier is not used
2018-07-22 20:49:27 11891 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-07-22 20:49:27 11891 [Note] InnoDB: Using CPU crc32 instructions
2018-07-22 20:49:27 11891 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2018-07-22 20:49:27 11891 [Note] InnoDB: Completed initialization of buffer pool
2018-07-22 20:49:27 11891 [Note] InnoDB: Highest supported file format is Barracuda.
2018-07-22 20:49:27 11891 [Note] InnoDB: The log sequence numbers 1629226 and 1629226 in ibdata files do not match the log sequence number 1629246 in the ib_logfiles!
2018-07-22 20:49:27 11891 [Note] InnoDB: Database was not shutdown normally!
2018-07-22 20:49:27 11891 [Note] InnoDB: Starting crash recovery.
2018-07-22 20:49:27 11891 [Note] InnoDB: Reading tablespace information from the .ibd files...
2018-07-22 20:49:27 11891 [Note] InnoDB: Restoring possible half-written data pages 
2018-07-22 20:49:27 11891 [Note] InnoDB: from the doublewrite buffer...
2018-07-22 20:49:28 11891 [Note] InnoDB: 128 rollback segment(s) are active.
2018-07-22 20:49:28 11891 [Note] InnoDB: Waiting for purge to start
2018-07-22 20:49:28 11891 [Note] InnoDB: 5.6.25 started; log sequence number 1629246
2018-07-22 20:49:28 11891 [Note] Recovering after a crash using mysql-bin
2018-07-22 20:49:28 11891 [Note] Starting crash recovery...
2018-07-22 20:49:28 11891 [Note] Crash recovery finished.
2018-07-22 20:49:28 11891 [Note] Server hostname (bind-address): '*'; port: 3306
2018-07-22 20:49:28 11891 [Note] IPv6 is available.
2018-07-22 20:49:28 11891 [Note]   - '::' resolves to '::';
2018-07-22 20:49:28 11891 [Note] Server socket created on IP: '::'.
InnoDB: wrong number of columns in SYS_INDEXES record
2018-07-22 20:49:28 11891 [Warning] InnoDB: Cannot open table mysql/slave_worker_info from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.
2018-07-22 20:49:28 11891 [Note] Event Scheduler: Loaded 0 events
2018-07-22 20:49:28 11891 [Note] mysqld: ready for connections.
Version: '5.6.25-log'  socket: '/usr/local/mysql/mysqld.sock'  port: 3306  Source distribution

 

   注:出现上面的就说明开启了

 

 配置mysql环境变量


 

   为了开启mysql服务方便,我们接下来配置mysql的环境变量

# 修改profile配置文件

sudo vim /etc/profile

# 在配置文件中添加下面的代码

export MYSQL_HOME=/usr/local/mysql        #mysql的安装目录

export PATH=$PATH:$MYSQL_HOME/bin:

# 使配置文件生效

source /etc/profile             #使配置文件的修改生效!

# 修改  /etc/sudoers文件:

Defaults       !env_reset            #修改此处!取消重新配置环境变量!

Defaults        mail_badpass

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# 使配置文件生效    

source /etc/sudoers     

# 开启mysql服务

sudo -i      # 要在root权限下

mysqld --user=mysql         #这样就可以直接开启mysql了^_^

mysql -uroot -p                    #未设置密码,直接ENTER

  mysql开启成功

   进入mysql成功

 

总结


mysql的编译安装一定要留意版本问题,有时候不是方法不对,而是版本的问题,才造成了无法安装成功

 文章有不足之处,还请各位看客指出


People people for me , me for people people!!

 

posted on 2018-07-22 21:29  董大志  阅读(739)  评论(0)    收藏  举报

导航