04_CentOS8下离线安装MySQL8.x
<h3>1.安装前环境准备</h3>
<h4>1.1 修改主机名及IP</h4>
<pre><code class="language-bash">vim /etc/hosts
vim /etc/hostname</code></pre>
<h4>1.2 安装相关依赖包</h4>
<pre><code class="language-bash">yum -y install libncurses*</code></pre>
<h3>2.下载mysql离线包</h3>
<p><a href="https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz">https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz</a></p>
<h3>3.创建组和用户</h3>
<pre><code class="language-bash">groupadd mysql
useradd mysql -g mysql -d /usr/local/mysql -s /sbin/nologin</code></pre>
<h3>4.上传并解压</h3>
<pre><code class="language-bash">xz -dk mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar
mv /usr/local/mysql-8.0.19-linux-glibc2.12-x86_64/* /usr/local/mysql
rmdir /usr/local/mysql-8.0.19-linux-glibc2.12-x86_64</code></pre>
<h3>5.创建目录</h3>
<pre><code class="language-bash">mkdir -pv /data/mysql/{data,sock,log,pid}
chown -R mysql:mysql /data/mysql</code></pre>
<h3>6.安装</h3>
<h4>6.1修改mysql服务</h4>
<p>配置mysql的服务,将support-files下的mysql.server 复制到 /etc/init.d/下并取个名字</p>
<pre><code class="language-bash">cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vim /etc/init.d/mysqld 修改为:
basedir=/usr/local/mysql
datadir=/data/mysql/data</code></pre>
<h4>6.2 在/etc/下新建my.cnf,内容如下:</h4>
<pre><code class="language-bash">[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /data/mysql/data
socket = /data/mysql/sock/mysql.sock
pid-file = /data/mysql/pid/mysql.pid
log-error = /data/mysql/log/mysql-error.log</code></pre>
<h4>6.3.初始化数据库</h4>
<p>切换到mysql的bin目录执行下面命令初始化数据库</p>
<pre><code class="language-bash">cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data</code></pre>
<p>注意:
执行完毕后会自动生成默认的密码在执行记录中,注意复制出来
cat /data/mysql/log/mysql-error.log</p>
<h4>6.4.通命令启动mysql 服务</h4>
<pre><code class="language-bash">/etc/init.d/mysql start</code></pre>
<h4>6.5.配置mysql的环境变量</h4>
<p>-bash: mysql: command not found.
为了Mysql 命令使用方便,配置一下mysql的环境变量</p>
<pre><code class="language-bash">vim /etc/profile
export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH</code></pre>
<h4>6.6.使环境变量生效</h4>
<pre><code class="language-bash">source /etc/profile</code></pre>
<h4>6.7.登录报错解决</h4>
<p><strong>报错001:</strong></p>
<pre><code class="language-bash">mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory</code></pre>
<p><strong>解决办法:</strong></p>
<pre><code class="language-bash">yum -y install libncurses*</code></pre>
<p><strong>报错002:</strong></p>
<pre><code class="language-bash">ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)</code></pre>
<p><strong>解决办法:</strong></p>
<pre><code class="language-bash">ln -s /data/mysql/sock/mysql.sock /tmp/mysql.sock</code></pre>
<h4>6.8 登录</h4>
<pre><code class="language-bash">mysql -uroot -p or mysql -p
Enter password: 输入默认的临时密码
登录成功后,修改密码</code></pre>
<h4>6.9 重置root密码</h4>
<pre><code class="language-bash">mysql> alter user 'root'@'localhost' identified by'root'; //修改密码
mysql> flush privileges; //刷新权限表
备注:mysql8.0修改用户密码命令(新的修改方式)</code></pre>