mysql源码包安装

一、准备编译环境

# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz  (内存不要太小)

二、准备源码包

# groupadd mysql

# useradd -r -g mysql -s /bin/false mysql (-r:系统用户,-g:组,-s:指定shell)

# tar xvf mysql-5.7.19.tar.gz

# cd mysql-5.7.19(以下都在该文件夹下完成)

[root@mysql3 mysql-5.7.19]# mv ../boost_1_59_0.tar.gz  .

[root@mysql3 mysql-5.7.19]# tar xf  boost_1_59_0.tar.gz(boost可以理解为MySQL的库文件)

配置

[root@mysql-5.7.17 ~]# cmake . 
-DWITH_BOOST=boost_1_59_0/ 
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DSYSCONFDIR=/etc 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DINSTALL_MANDIR=/usr/share/man 
-DMYSQL_TCP_PORT=3306 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
-DDEFAULT_CHARSET=utf8 
-DEXTRA_CHARSETS=all 
-DDEFAULT_COLLATION=utf8_general_ci 
-DWITH_READLINE=1 
-DWITH_SSL=system 
-DWITH_EMBEDDED_SERVER=1 
-DENABLED_LOCAL_INFILE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1

如果cmake失败,请将CMakeCache.txt缓存移除

编译

# make
    等待1个小时左右

安装

# make install

三、初始化

# cd /usr/local/mysql

# mkdir mysql-files

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

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

#  /usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

# vim /etc/my.cnf

[root@mysql1 mysql]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

四、开机启动MySQL

# cp support-files/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld

# chkconfig mysqld on

# service mysqld start

# ps aux |grep mysqld

mysql -u root -p '密码'  登陆有问题吗?

/usr/local/mysql/bin/mysql -u root -p'x/dwiQ2<l:hb'(引号内为上一步的临时密码)

配新密码

/usr/local/mysql/bin/mysqladmin -u root -p 'x/dwiQ2<l:hb' password 'QinFeng@123'

show databases; 看到库即可。

$PATH(必须做,有点的时候回报错,确保万无一失)

[root@mysql2 mysql]# mysql

-bash: mysql: command not found

[root@mysql2 mysql]# /usr/local/mysql/bin/mysql  (关键)

[root@mysql1 mysql]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

[root@mysql1 mysql]# source /etc/profile

[root@localhost ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.19 Source distribution
登录成功

五、报错记录

1、[root@localhost mysql]# service mysqld start
Starting MySQL.2019-11-02T11:02:31.316199Z mysqld_safe error: log-error set to '/var/lble for user 'mysql'.
 ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid)
[root@localhost mysql]# mkdir /var/lo
local/ lock/  log/   
[root@localhost mysql]# mkdir /var/log/mariadb
[root@localhost mysql]# touch /var/log/mariadb/mariadb.log
[root@localhost mysql]# chown -R mysql:db /var/log/mariadb
chown: invalid group: ‘mysql:db’
[root@localhost mysql]# chown -R mysql:mysql /var/log/mariadb/
[root@localhost mysql]#
[root@localhost mysql]# service mysqld start
Starting MySQL. SUCCESS!

2、[root@localhost ~]# mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

解决:[root@localhost ~]# yum -y install mariadb mariadb-server

[root@localhost ~]# systemctl restart mariadb
[root@localhost ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]>

六、yum安装mysql

https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/#repo-qg-yum-installing  (官网yum安装)
# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm # yum -y install mysql57-community-release-el7-10.noarch.rpm # yum -y install mysql-community-server

# mysql 报错(mysql未启动)
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

执行:
# systemctl start mysqld
# systemctl enable mysqld
# systemctl daemon-reload
mysql安装完成之后,会在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。
# vim /var/log/mysqld.log
...
2020-03-14T12:56:42.004748Z 1 [Note] A temporary password is generated for root@localhost: w6pdVr+mB=pO
......
  # mysql --version
mysql  Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using  EditLine wrapper

# cat /var/log/mysqld.log | grep 'temporary password'
2020-03-29T09:34:24.340862Z 1 [Note] A temporary password is generated for root@localhost: r!vx6FmI8?J
原文地址:https://www.cnblogs.com/zjz20/p/11378873.html