在centos上安装mysql着实费了我一番功夫。一番探索后我成功的在4台centos虚机上安装上了mysql,其中三台用yum的方式进行安装,一台用rpm的方式进行安装。现做记录如下:
0:检查centos是否有安装mysql和完全卸载mysql
-
查看MySQL是否安装:
yum list installed mysql* 或者: rpm -qa | grep -i mysql
-
卸载mysql
yum remove mysql mysql-server mysql-libs compat-mysql51(你所安装的mysql) rm -rf /var/lib/mysql rm /etc/my.cnf
一:rpm方式安装
软件下载:上mysql的官网下载对应的版本软件;我下载的是mysql-8.0.12-linux-glibc2.12-x86_64.tar这个版本。
- 解压到你预装mysql的路径:tar -xJvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz -C /opt/app
-
建目录授权等
groupadd mysql useradd mysql mkdir -p /opt/dataSet/mysql #(创建一个用于存放数据的文件夹) chown -R mysql:mysql /opt/dataSet/mysql/ chmod -R 775 /opt/dataSet/mysql/
- 配置文件/etc/my.cof如下
[mysqld] server-id = 1 port = 3306 mysqlx_port = 33060 mysqlx_socket = /tmp/mysqlx.sock basedir = /opt/app/mysql #(我的软件安装在这里) datadir = /opt/dataSet/mysql #(我的数据放在这个文件夹) socket = /tmp/mysql.sock pid-file = /tmp/mysqld.pid log-error = /opt/dataSet/mysql/error.log #(对应修改) slow-query-log = 1 slow-query-log-file = slow.log long_query_time = 0.2 log-bin = bin.log relay-log = relay.log binlog_format =ROW relay_log_recovery = 1 #character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect ='SET NAMES utf8mb4' innodb_buffer_pool_size = 1G join_buffer_size = 128M sort_buffer_size = 2M read_rnd_buffer_size = 2M log_timestamps = SYSTEM lower_case_table_names = 1 default-authentication-plugin =mysql_native_password #(设置为可远程登录)
-
初始化数据库:
/opt/app/mysql/bin/mysqld --user=mysql --basedir=/opt/app/mysql --datadir=/opt/dataSet/mysql --initialize-insecure
官方推荐使用--initialize,会在错误日志中生成难以输入的临时密码,我这里使用的免密码的方式
cat /opt/dataSet/mysql/error.log | grep -i password
-
设置启动文件和环境变量:
cp /opt/app/mysql/support-files/mysql.server /etc/init.d/mysql
-
--启动数据库:
/etc/init.d/mysql start
vim /etc/profile.d/mysql.sh cat /etc/profile.d/mysql.sh export PATH=$PATH:/opt/dataSet/mysql/bin
使得环境变量生效:
source /etc/profile.d/mysql.sh
-
安装完毕,查看mysql版本信息:
mysqld --version
- 登录mysql
/opt/app/mysql/bin/mysql -p -S /tmp/mysql.sock 或者: mysql -uroot -p
- 设置navicat可远程登录(以下操作皆在mysql中)
在设置之前先把免密登录mysql改成自己设置的密码。
下面设置为“123456”set global validate_password.policy=0; set global validate_password.length=1; alter user user() identified by '123456';
设置远程连接
use mysql; alter user 'root'@'localhost' identified with mysql_native_password by '123456'; flush privileges; update user set host='%' where user='root'; flush privileges;
安装成功连接成功:
-
设置mysql快捷登录
vim .bashrc
在文件中添加
alias mysql='mysql -uroot -p123456'
使配置文件生效
source .bashrc
这样就可以直接在指令行中打mysql登录了
二:yum方式安装
找了许久,发现照着博客能成功安装的有yum 连接。
对于一般的人照着上面那个博客也够用了,但是因为上述yum安装,数据的存储路径默认为/var/lib/mysql。可是我所用的虚机磁盘主要挂在/opt路径,考虑到以后会在mysql中存储大量的数据,所以经过一番不易的探索,把mysql的数据存储路径换在了/opt/dataSet路径。具体步骤如下所示:
- 把/var/lib/mysql 整个目录复制到/opt/dataSet(把/var/lib/mysql整个目录保持权限复制到/opt/dataSet)
cp -arp /var/lib/mysql /opt/dataSet/
- 修改配置文件 my.cnf
datadir=/opt/dataSet/mysql #(新的数据存储路径) socket=/opt/dataSet/mysql/mysql.sock #(#修改socket参数) log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid default_authentication_plugin=mysql_native_password
-
修改MySQL启动脚本/etc/init.d/mysql
datadir = /opt/dataSet/mysql ln -s /opt/dataSet/mysql/mysql.sock /var/lib/mysql/mysql.sock
-
做一个mysql.sock 链接:
ln -sf /opt/dataSet/mysql/mysql.sock /var/lib/mysql/mysql.sock
-
检查相关目录的属主和权限。
chown -R mysql:mysql /opt/dataSet/mysql/
-
重启mysql
/etc/init.d/mysql start 或者 service mysqld start
参考博客:rmp安装、yum安装、更换mysql数据存储路径1、更换mysql数据存储路径2