Centos7 源码安装/卸载MySQL5.7

一、安装依赖和编译软件:

yum install -y cmake make gcc gcc-c++ wget ncurses-devel cmake make perl ncurses-devel openssl-devel bison-devel libaio libaio-devel

二、创建mysql安装目录:

mkdir -p /usr/local/mysql/mysql
mkdir /usr/local/mysql/data    //数据目录

三、创建mysql用户和组(不设置的话,mysql初始化会失败):

groupadd mysql  				 //创建用户组
useradd -s /bin/bash -m -g mysql mysql    			//创建mysql用户,所属组未mysql

创建的目录的所属用户与所属组为mysql:mysql:

chown -R mysql:mysql /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/mysql

四:安装:

4.1、下载安装包:

cd /usr/local/mysql
wget https://downloads.mysql.com/archives/get/file/mysql-5.7.16.tar.gz 
mv /etc/my.cnf /etc/mysql.cof.back

4.2、编译安装:

tar -zxvf mysql-5.7.16.tar.gz
cd /usr/local/mysql/mysql-5.7.16
执行如下命令:
cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/my.cnf \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DENABLE_DEBUG_SYNC=0 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=1 \
-DMYSQL_TCP_PORT=3306 \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost/boost_1_59_0.tar.gz

执行安装:
make && make install

出现如下图所示,则安装成功:
在这里插入图片描述
说明:
Centos7 源码安装/卸载MySQL5.7_第1张图片
五、设置开机启动:

cp /usr/local/mysql/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
ln -s /usr/local/mysql/mysql/bin/* /usr/local/bin/
chkconfig --add mysqld
chkconfig mysqld on

六:初始化MySQL:

6.1、拷贝my.cnf至/etc/目录下:

cp /usr/local/mysql/mysql/support-files/my-default.cnf /etc/my.cnf

6.2、修改配置文件(如下图):
Centos7 源码安装/卸载MySQL5.7_第2张图片
6.3、进入到MySQL安装目录下bin目录:

cd /usr/local/mysql/mysql/bin

注:初始化MySQL,切记–defaults-file=/etc/my.cnf要放在参数的第一位,初始化信息可以在MySQL的errorlog中查看,并且在errorlog会生成一个root的随机密码,该随机密码仅仅为root@localhost用户所有。

mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/usr/local/mysql/mysql --datadir=/usr/local/mysql/data  --user=mysql

6.4、初始化后,回答道数据库初始连接密码:
在这里插入图片描述
七、启动mysql:

7.1、添加环境变量:

vi /etc/profile

在文件中添加如下语句:

PATH=$PATH:/usr/local/mysql/mysql/bin:/usr/local/mysql/mysql/lib/
export PATH

保存后,使环境变量生效:

source /etc/profile

7.2、启动mysql:

mysqld_safe --defaults-file=/etc/my.cnf &
或者 service mysqld start
可以通过ps -ef | grep mysql看到相关进程

7.3、登录mysql修改密码:

mysql -uroot  -p   ‘初始密码’

修改密码:

set password='新密码'; 

刷新权限:

FLUSH PRIVILEGES;

至此安装完成!!!

八、远程连接:

8.1、连接数据库

mysql -u用户名 -p密码
use mysql

8.2、查询用户表命令:

select User,authentication_string,Host from user;

得到如下图所示:

8.3、创建可以访问的用户和密码:

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码';

然后在执行用户表命令,得到如下图所示:
Centos7 源码安装/卸载MySQL5.7_第3张图片
GRANT语句说明:
Centos7 源码安装/卸载MySQL5.7_第4张图片
8.4、刷新权限:

 flush privileges;   

8.5、重启mysql:

service mysqld restart

九、遇到的错误:

9.1、问题一:

mysqld --initialize的时候出现了--initialize specified but the data directory has files in it. Aborting. 错误

解决方法:
a、检查my.cnf文件中datadir配置路径下,是否有data文件夹
b、检查data文件夹下是否为空,不为空则清空文件夹

9.2、问题二:
使用mysql -uroot -p密码,连接数据库,出现

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/usr/local/mysql/run/mysql.sock' (2)

解决方法:
使用如下方法,强制连接

mysqladmin shutdown -uroot -S /usr/local/mysql/mysql/mysql.sock -p

发现可以连接,后来发现是cmake时socket路径写错,此时只能卸载,重新安装(如有好方法,请指正)

9.3、问题三:

启动MySql提示:The server quit without updating PID file(…)失败

解决方法:
Centos7 源码安装/卸载MySQL5.7_第5张图片
9.4、问题四:
安装完成后无法获取初始密码。
解决方法:
9.4.1、在配置文件/etc/my.cnf中 [mysqld] 这一项下添加skip-grant-tables 这个配置,然后保存。
9.4.2、免密登录:输入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键。
9.4.3、重置密码:

use mysql;
update user set authentication_string=password(‘新密码’) where user=‘root’ and host=‘localhost’;
flush privileges;

说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.
9.4.4、删除掉my.cnf中的免密设置,重启mysql即可。

十、mysql的卸载:

10.1、检查mysql服务:

ps -ef|grep mysql

10.2、查看进程:

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

在这里插入图片描述
10.3、关闭进程:

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

10.4、关闭以后再查看进程:

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

在这里插入图片描述
10.5、查找mysql安装目录:

whereis mysql      或者 find / -name mysql 

10.6、删除安装目录和配置文件:

rm -rf  安装目录     
rm -rf /etc/my.cnf    //删除配置文件

10.7、删除mysql用户和组:

id mysql     // 查看用户

在这里插入图片描述

userdel mysql    //删除

删除完成后,在执行 id mysql 查看显示
在这里插入图片描述
至此删除成功。

你可能感兴趣的:(linux)