国内需要换源的把源换一下,接下来不多加解释root用户不用加sudo
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install cmake -y
(默认3.10.2)跨平台编译工具,这个要看每一个版本的mysql需要至少多少版本的各种工具,mysql5.6的说明文档在此mysql5.6说明文档sudo apt-get install make
(默认4.1);sudo apt-get install gcc g++
gcc编译工具和g++编译器(默认都是4.7.3)sudo apt-get install libncurses5 libncurses5-dev
安装ncurses库,不知道啥的就去查,也可以不用知道sudo apt-get install bison
安装bison库(默认是2.3版本)sudo groupadd mysql
useradd -r -g mysql -s /bin/false mysql
sudo mkdir /usr/local/mysql
安装目录
sudo mkdir /data
sudo mkdir /data/mysqldata
tar -zxvf mysql-x.x.x.tar.gz
记得改版本号,别犯傻
cd mysql-x.x.x
mkdir bld
创建一个编译文件夹,编译过程中的一些缓存文件都在这,以备编译失败后清除缓存文件重新编译
cd bld
sudo cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysqldata \
-DSYSCONFDIR=/etc
make
make install
chown -R root: /usr/local/mysql
sudo chgrp -R mysql /usr/local/mysql
sudo chown -R mysql /data/mysqldata
sudo chgrp -R mysql /data/mysqldata
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vim /etc/profile
在文件最后填入以下内容
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH
让其生效
source /etc/profile
全局配置:
/etc/mysql/my.cnf
用户配置:
/etc/mysq/conf.d/my.cnf
全局配置(基础配置):
[mysqld]
user = mysql
port = 3306
server-id = 1
basedir = /usr/local/mysql
tmpdir = /data/mysqldata
datadir = /data/mysqldata
socket = /data/mysqldata/mysql.sock
log-error=/data/mysqldata/error.log
初始化数据库(数据库5.7.6以前的版本使用如下的命令来初始化数据库)
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata
5.7.6以后是
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata
service mysql start
如果启动不成功,reboot一下试试,如果还不成功,查看错误日志,然后搜索引擎
如果启动成功,但是无法使用下面的命令修改密码或者登陆数据库,提示
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
修改配置文件vim /etc/mysql/my.cnf,添加如下配置
[client]
socket=/data/mysqldata/mysql.sock
启动成功后,注意是mysql启动成功后,修改root用户密码
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
然后root用户名登陆,密码填入刚刚修改的
mysql -uroot -p
成功登入,由此初步安装完成,接下来可以修改配置文件,对数据库进行优化
mysql> use mysql;
mysql> update user set Host='%' where user='root' AND Host='localhost';
mysql> flush privileges;
重启数据库
systemctl restart mysql.service