Linux下安装MySQL

Posted danielhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下安装MySQL相关的知识,希望对你有一定的参考价值。

 插播一个 Linux 下安装 mysql 的步骤。

  操作系统 RedHat 7.7. 我没有通过 yum 这类的安装,而是从网上下载的二进制文件。

首先从这里下载 https://dev.mysql.com/downloads/mysql/

技术图片

 

 

 我选择的是 Linux -Generic, 下载 mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz.

在 RedHat VM 中

1. 使用 root 用户,创建mysqlgroup组,以及mysql 用户,设置密码

groupadd mysqlgroup
useradd -g mysqlgroup mysql
passwd mysql

2. 使用 root 创建 /mysql 目录,将 tar.xz 放到/mysql 目录下,解压,设置所有者

cd /mysql
tar -xf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
mv ./mysql-8.0.18-linux-glibc2.12-x86_64 ./mysqlroot
chown -R mysql:mysqlgroup /mysql

3. 在/mysql 目录下,创建 temp 目录,log 目录,在 /mysql/mysqlroot 目录下创建 /data 目录

mkdir -p /mysql/temp
mkdir -p /mysql/log
mkdir -p /mysql/mysqlroot/data

因为我希望自己构建 mysql 的服务,data 目录用来保存数据库文件,log目录用于保存日志,temp 目录用于保存 sock 文件。

4. 初始化mysql

/mysql/mysqlroot/bin/mysqld --initialize --user=mysql --basedir=/mysql/mysqlroot --datadir=/mysql/mysqlroot/data

这一步会生成 root 的密码,需要将它记录下来。我这里生成的随机密码是 UpDp(Zfl7j?1

5. 创建 .cnf 文件,设置权限为 777

cd /mysql/mysqlroot/support-files/
touch my-default.cnf
chmod 777 ./my-default.cnf

6. 修改 .cnf 文件

技术图片
[mysqld]
basedir=/mysql/mysqlroot
datadir=/mysql/mysqlroot/data
socket=/mysql/temp/mysql.sock
log-error=/mysql/log/error.log
pid-file=/mysql/mysqlroot/data/mysql.pid
tmpdir=/mysql/temp
port=3306
#lower_case_table_names = 1
# server_id = .....
# socket = .....
#lower_case_table_names = 1
max_allowed_packet=32M
default-authentication-plugin=mysql_native_password
#lower_case_file_system=on
#lower_case_table_names=1
log_bin_trust_function_creators=ON
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket=/mysql/temp/mysql.sock
View Code

这里会用到第三步创建的目录,比如:basedir 变量 /mysql/mysqlroot 是我的MySQL 程序所在目录。

7. 复制 my-default.cnf 到 /etc/ 目录下。

8. 设置MySQL开机自启动

cd/mysql/mysqlroot/support-files/ 
cp mysql.server /etc/init.d/mysql

如果文件没有执行权限,需要加上可执行的权限。

这一步中,我修改了脚本文件的这两行

basedir=/mysql/mysqlroot
datadir=/mysql/mysqlroot/data

9. 注册服务

chkconfig --add mysql

10. 设置 ld.so.conf

一下是我的文件内容,第一行是我新加的

include ld.so.conf.d/*.conf
/mysql/mysqlroot/lib

11. 为 mysql 用户添加环境变量,在 mysql 的 home 目录,打开 .bash_profile 文件

export MYSQL_HOME=/mysql

PATH=$MYSQL_HOME/mysqlroot/bin:$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export LD_LIBRARY_PATH=$MYSQL_HOME/mysqlroot/lib:$LD_LIBRARY_PATH

12. 使用 mysql -uroot -p 登录 Mysql

密码使用第四步生产的密码。

13. 修改 root 密码

alter user root@localhost identified by mysql;

将密码改为 mysql.

14. 设置 mysql 能够远程访问

use mysql;
update user set host =% where user = root;
GRANT ALL PRIVILEGES ON *.* TO root@% WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

注:

第12步经常会出现 "ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘.......‘"

我重启机器仍然没法启动 mysql的server. 我的做法是在 /mysql/mysqlroot/bin 目录下,手动运行 mysqld.

然后重启机器后MySQL正常自动开机启动了。

查看 MySQL的端口

[mysql@daniel ~]$ netstat -an | grep 3306  
tcp6       0      0 :::3306                 :::*                    LISTEN  

MySQL 服务正常。搞定。

以上是关于Linux下安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章

linux下源代码搭建php环境之mysql

mysql查看版本的四种方法

Linux下基于源代码方式安装MySQL 5.6

linux下安装mysql

Linux平台下安装MySQL

下载mysql5.6源码在linux下安装