一、下载MySQL二进制包
linux上MySQL的安装方式常见的有三种,分别为:
1.rpm包/deb包
通过官网下载对应版本,RedHat系列下载rpm包后,直接通过yum方式来安装。Debian系列下载deb包后通过apt-get方式进行安装。如下:
这种方式实际使用不太多,主要是由于安装的路径和配置难以定制化。
2.二进制安装
可以在官方网站下载编译软件包。下载后无需额外准备额外的依赖环境。安装过程比较简单。
3.源码安装
需要配置适宜的环境,然后进行源码的编译安装,对环境的依赖高。适用于环境调试。
选择二进制安装
- 下载
下载地址为https://downloads.mysql.com/archives/community/,我下载的是mysql-8.0.12版本。二进制包需要操作系统选择linux通用,适合所有的linux系统进行安装,如下:
发现压缩包格式为xz,而5.7压缩包的格式为gz,这是由于xz的压缩比更高,下载更快捷。
- 解压
用tar命令进行解压:
- 创建相关目录
修改文件夹名
创建数据目录
- 初始化系统环境,创建一个mysql用户和组
- 复制启动脚本放入自启动设置里
cp -rf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
- 创建软连接
chown -R mysql:mysql /usr/local/mysql /home/mysql
ln -f -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -f -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
ln -f -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
ln -f -s /usr/local/mysql/bin/mysqlshow /usr/bin/mysqlshow
ln -f -s /usr/local/mysql/bin/mysqld /usr/bin/mysqld
- 安装依赖(centos7上不需要)
- 修改mysql配置文件
在/etc目录下创建一个my.cnf文件,并设置常用属性。以下是我的设置:
[mysqld]
port=3306
datadir=/home/mysql
log_error=/home/mysqllog/data_3306/error.log
basedir=/usr/local/mysql
配置文件未设置时,启动mysql服务将以默认的配置启动,会报错:
修改完配置后需要创建错误日志目录并赋予mysql相应权限,不然初始化时会报拒绝请求的错误:
mkdir -p /home/mysqllog/data_3306
chown -R mysql /home/mysqllog/data_3306
chmod -R 700 /home/mysqllog/data_3306
- 初始化字典数据
初始化失败,报如下错误,说数据目录已经有文件在里面了
清空后重新初始化即可。按照--initialize方式初始化后会生成一个随机的密码,在登录的时候需要进行修改才能进行操作。也可以使用--initialize-insecure方式初始化,它们登录的方式不太一样。
- 启动mysql服务,命令:service mysql start
- 登录数据库
我是按照--initialize方式初始化的,使用如下方式登录,如果使用--initialize-insecure方式初始化,则使用--skip-password选项登录。
ubuntu上登录的时候报如下错误(centos7可以正常登陆):
通过find / -name libtinfo.so.5查看发现没有安装这个库,
通过apt查找并安装
再次登录,如果密码不正确会登陆失败。
去日志文件中查找初始化时生成的随机密码登录即可,如下。有时初始化时随机密码等日志信息直接打印在控制台了,要看具体配置。
需要注意随机密码为localhost:后面的一整串字符。初次登陆时操作不了,如下:
- 修改密码
修改密码的时候发现不能使用set方式,只好使用alter。
Alter USER 'root'@'localhost' identified by '***';
修改密码后终于可以进行操作了!
- 建表
mysql中如果需要建表,要先选择要建的表所在的数据库,不然直接创建表会报错:
先选择数据库再创建表就好了
看来用二进制包进行安装也是有学问的,以后如果要这样安装就可以借鉴这次的经验了O(∩_∩)O~