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
这里会用到第三步创建的目录,比如: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的主要内容,如果未能解决你的问题,请参考以下文章