一、准备编译环境
# 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