网站首页日记详情

源码安装mysql,5.7,8.0

徒步认知2020/07/0187人围观
简介源码安装mysql,5.7,8.0。现在应该都还停留在mysql5.7,5.5,虽然我使用了,mysql8.0但是也是有诸多不便,默认得字符集好像也要更改了,默认加密方式不一样了。

mysql 5.7


源码安装mysql

 

https://blog.csdn.net/qq_29837161/article/details/82022218

 

安装依赖扩展

yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml2 libgcrypt libtool bison

 

 

下载mysql

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.26.tar.gz

 

不建议dmysql-user root 我第一次用了root,之后都用了mysql

编译安装

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/logs/mysql.sock -DSYSCONFDIR=/usr/local/mysql/etc -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 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql-5.7.27/boost

 

 

make -j 2 && make install 

注:-j 用来指定CPU核心数,可加快编译速度,不加也可以  

 

 

查看版本

/usr/local/mysql/bin/mysql --version



mysql 8.0


借鉴了这三篇文档

编译

https://blog.csdn.net/ky1in93/article/details/80110971

https://blog.csdn.net/pk972703678/article/details/80469096

安装

https://blog.csdn.net/l1028386804/article/details/105508896

 

 

 

下载压缩包 并解压

源代码 最后一个

Tar -zxf mysql......

 

安装依赖

Yum|dnf -y install wget cmake gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel libtirpc-devel

 

创建mysql用户组 mysql 文件夹 mysql中创建data文件夹

 

编译  mysql 用的不是 configure cmake

// cmake 安装使用

Cmake 有内存大小的限制 2g    版本限制3.0以上

Tar -zxf cmake-3.15.3

Mv cmake-3.15.3 cmake

./configure

Gmake

Make

Makeinstall

Ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

 

//mysql cmake

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/logs/mysql.sock -DSYSCONFDIR=/usr/local/mysql/etc -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 -DFORCE_INSOURCE_BUILD=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql-8.0.17/boost

 

 

 

我现在使用得centos8 2g 1

 在这里特别提醒, 对于make编译, 如果是阿里云centos主机小于2GB内存的, 会在make编译到45、63%时会报错, 这是内存不足所致。

错误信息为:

解决:

设置2G交换分区来用下 :

# dd if=/dev/zero of=/swapfile bs=1k count=2048000 --获取要增加的2G的SWAP文件块

# mkswap /swapfile -- 创建SWAP文件

# swapon /swapfile -- 激活SWAP文件

# swapon -s -- 查看SWAP信息是否正确

# echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab -- 添加到fstab文件中让系统引导时自动启动

 

注意, swapfile文件的路径在/var/下 
编译完后, 如果不想要交换分区了, 可以删除:

 Swapoff /swapfile

Rm -rf swapfile

 

 

 

Cmake 第一个错

添加这个参数

 

第二个错误

需要 gcc 5.3 或者以上

Tar -zxf gcc-8.2.0.tar.gz

./configure

Make

Makeinstall

Ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

 

 

我用的centos8 默认安装了8.0

 

以上是centos7上得错误

 

 

Centos 8 错误

Package ‘libtirpc‘, required by ‘virtual:world‘, not found

 

Dnf install -y libtirpc-devel

 

 

Could not find rpcgen

wget https://github.com/thkukuk/rpcsvc-proto/releases/download/v1.4.1/rpcsvc-proto-1.4.1.tar.xz

xz -d rpcsvc-proto-1.4.1.tar.xz

tar -xvf rpcsvc-proto-1.4.1.tar

cd rpcsvc-proto-1.4.1

./configure

make

make install

 

mysql service


//服务可执行文件

Msyql(客户端) /usr/local/mysql/bin/mysql

Msyqld(服务端) /usr/local/mysql/bin/mysqld

 

使用下面的命令查看是否有mysql用户及用户组:

cat /etc/passwd     //查看用户列表

cat /etc/group       //查看用户组列表

 

如果没有就创建:

groupadd mysql   //创建mysql组

useradd -g mysql mysql   //创建属于mysql组的mysql用户

passwd  mysql//为mysql用户创建登录密码 我直接把mysql家目录删掉了

 

修改/usr/local/mysql权限:chown -R mysql:mysql /usr/local/mysql

 

 

 

 

初始化数据库 创建自带数据库和数据表

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --explicit_defaults_for_timestamp

Root  Xf63w8Z?YG8D

 

启动mysql

/usr/local/mysql/support-file/mysql.server start

 

修改密码

Set password = password(‘130619....’)

没有修改过密码 第一次登陆会让你修改一次密码

 

登陆之后 进入mysql”数据库 user表 修改用户密码 字段为

Password 加密

 

 

 

修改root可以任何ip链接后记得刷新权限

flush privileges;


 Mysql 配置文件  /etc/my.cnf

 

Mysql /var/lib/msyql/mysql.sock 配置文件需要

 

mysql.sock配置个软链

Ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

 

Mysql -uroot -p 就可以登陆了

 

 

想要外部ide链接mysql

Root为例

修改Host%就可以

 

修改端口

my.cnf mysqld】下写 “port=3306mysq会自动识别

 

 

 

软链mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

启动服务

/usr/local/mysql/bin/mysqld_safe --user=root & root用户后台运行,

/usr/local/mysql/support-files/mysql.server start 

 

配置server 服务ls

可以不使用进程手动

 

Msyql.server 放入 /etc/init.d中配置好安装参数就好

我是root创建的 所以有可能莫部分命令不可以使用

 

my_print_defaults: Can't read dir of '/etc/my.cnf.d' (OS errno 2 - No such file or directory)

 

新建目录就可可以了,


 

 

 

Mysql 开机自启动

Systemctl 文档

 

 

Mysql 8

 

Php navicat 链接不上

Mysql8 密码加密方式修改了,需要修改一下加密方式

 

修改加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

 

刷新

FLUSH PRIVILEGES;