Linux学习笔记34——编译安装mysql

一、tar.gz方式

1,编译安装mysql有两种方式

  • yum 安装(简单)
  • 自行编译安装(自由)

原来是由通过yum安装过mysql,比较简单。由于博主要在生产环境中搭建mysql,因此采用自行编译安装。

2,mysql下载

博主直接找mysql官网下载,速度也还挺快的,不过版本注意了,还是用的5.7,总之8目前用得还不算多。
mysql-community-server-5.7.24-1.el6.x86_64.rpm
但是用这个安装发现缺少诸如 client等问题。
因此,就用了163的tar.gz包进行安装,下载地址:
http://mirrors.163.com/mysql/Downloads/MySQL-5.7/
得到:mysql-5.7.23.tar.gz
这样的文件就和之前的安装很类似了:
tar -zxvf mysql-5.7.23.tar.gz -C /usr/local

3,安装相应的依赖

yum install make cmake gcc gcc-c++ bison bison-devel ncurses ncursess-devel autoconf automake wget

4,下载boost

mkdir /usr/local/boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz --no-check-certificate

5,添加用户并创建相应目录存放数据

		useradd mysql
		cd /home/mysql/
		mkdir data logs temp
		chown -R  mysql:mysql data logs temp

4.执行cmake

cmake \
		-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
		-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
		-DDEFAULT_CHARSET=utf8 \
		-DDEFAULT_COLLATION=utf8_general_ci \
		-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 \
		-DWITH_READLINE=1 \
		-DENABLED_LOCAL_INFILE=1 \
		-DMYSQL_DATADIR=/home/mysql/data \
		-DMYSQL_USER=mysql \
		-DMYSQL_TCP_PORT=3306 \
		-DWITH_BOOST=/usr/local/boost

二、rpm方式

一:官网下载RPM包
登陆官网地址下载https://dev.mysql.com/downloads/mysql/,并上传至服务器,可以通过xftp或者filezilla上传。

二:安装前的准备工作
一般可以将文件上传至/usr/目录下新建一个mysql目录存放tar包,然后通过tar -xf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar,解包后,虽然会有十几个安装包,但是我们一般只需要安装client和server就够了,首先需要进行安装前的检查,

上面的报错是因为libs包无法安装是由于mariadb已经存在,我们需要将其卸载才能将libs包安装成功,
卸载的命令是:rpm -e --nodeps mariadb-libs,
然后就可以安装libs包了,
通过一般通过rpm安装的mysql需要依次执行下面的命令,因为各个包之间有依赖关系,所以最好顺序执行:
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
在安装server包时报了一个错误:

报错的原因是因为我的虚拟机中安装的linux是最小化的安装,有些命令是没有安装的,所以需要通过
yum provides perl查看可以安装的软件包,
然后通过yum install perl安装,之后再继续安装server包,这时候就成功了。
三:初始化数据库
初始化的命令是:mysqld–initialize --user=mysql
执行之后会给mysqlroot用户一个初始化的密码,可以通过vim /var/log/mysqld.log到日志中看初始密码

启动mysql数据库,之后就可以登录了,
mysql -uroot -p,输入密码,
第一次登录需要修改初始密码
alter user ‘root’@‘主机地址’ identified by ‘密码’;
如果想在虚拟机外通过sqlyog之类的工具连接服务器中的mysql,需要修改防火墙设置,放开3306端口。
如果在/etc/sysconfig/目录下找不到iptables文件,说明防火墙没有安装,通过yum provides iptables可以看到可以安装的版本。
yum install iptables和yum install iptables-service;
然后开启防火墙service iptables start
vim /etc/sysconfig/iptables

将3306端口开发,然后重启防火墙生效即可。
登录数据库报ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

原因主要是使用默认密码登录失败,需要登入数据库修改root用户的密码,但是现在的问题就是进不了数据库。

1、首先需要修改配置文件在[mysqld]下面添加skip-grant-tables,这样就可以免密码登录,重启数据库,输入mysql -uroot -p,然后按Enter键直接进入数据库。

2、进入mysql用户,use mysql。然后修改root用户的密码:

update mysql.user set authentication_string=password(‘newpassword’) where user=‘root’ and host=‘127.0.0.1’ or host=‘localhost’;
注意authentication_string=password(‘newpassword’)中的password(’’)不能少,否则会失败。

3、输入flush privileges;刷新赋权。

然后退出数据库,修改配置文件将skip-grant-tables注释掉,重新启动数据库,这时就可以用新密码登录了。

3,安装完之后

可能存在mysql.sock住不到的问题,这时候就要先找到sock文件,然后用这个命令:
mysql -u 你的mysql用户名 -p -S /var/lib/mysql/mysql.sock

参考:https://blog.csdn.net/dongyuxu342719/article/details/72566695

猜你喜欢

转载自blog.csdn.net/qq_22059611/article/details/86475525