码迷,mamicode.com
首页 > 数据库 > 详细

Linux下安装MySQL

时间:2019-12-28 21:20:22      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:运行   sys   host   rar   保存数据   through   sock   basedir   为我   

 插播一个 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

标签:运行   sys   host   rar   保存数据   through   sock   basedir   为我   

原文地址:https://www.cnblogs.com/danielhu/p/12112924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!