数据库


02_CentOS 7 / 8 离线安装MySQL5.7.x指定版本数据库

<pre><code>目标 系统为:CentOS8.0.1905 最终安装MySQL版本:5.7.29</code></pre> <p>安装方法在CentOS7下安装完全一样。</p> <h2>一、离线安装指定版本的MySQL</h2> <h3>0.安装前准备工作</h3> <p>如修改主机IP和主机名等操作</p> <pre><code class="language-bash">vim /etc/hosts vim /etc/hostname</code></pre> <h3>1.官网下载tar包</h3> <p>官网地址:<a href="https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz">https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz</a> <a href="https://downloads.mysql.com/archives/community/">https://downloads.mysql.com/archives/community/</a> 或者使用以下命令下载</p> <pre><code class="language-bash">wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz</code></pre> <h3>2.安装必要的包</h3> <pre><code class="language-bash">yum -y install libncurses* #CentOS8时需安装,7已经安装。</code></pre> <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.上传mysql安装包并解压修</h3> <pre><code class="language-bash">tar zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ mv /usr/local/mysql-5.7.29-linux-glibc2.12-x86_64/* /usr/local/mysql rmdir /usr/local/mysql-5.7.29-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><strong>CentOS7/8:</strong> 配置mysql的服务,将support-files下的mysql.server 复制到 /etc/rc.d/下并取个名字</p> <pre><code class="language-bash">cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/mysqld vim /etc/rc.d/mysqld 修改为: basedir=/usr/local/mysql datadir=/data/mysql/data</code></pre> <p><strong>CentOS6:</strong> 配置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/mysql 修改为: basedir=/usr/local/mysql datadir=/data/mysql/data</code></pre> <h4>6.2.配置mysql的配置文件my.cnf</h4> <p>在/etc/下新建my.cnf,内容如下:</p> <pre><code class="language-bash">[client] port = 3306 default-character-set=utf8 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 character-set-server=utf8 default_storage_engine = InnoDB lower_case_table_names=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION default-time_zone = '+8:00' socket = /tmp/mysql.sock</code></pre> <p>附,gfkd-et:</p> <pre><code class="language-bash">[client] port = 3306 default-character-set=utf8mb4 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 character-set-server=utf8mb4 default_storage_engine = InnoDB lower_case_table_names=1 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION default-time_zone = '+8:00' socket = /tmp/mysql.sock max_allowed_packet=100M innodb_log_file_size=512M max_connections=1024 slow-query-log=1 binlog_format=ROW [mysql] default-character-set=utf8mb4</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>注意: 执行完毕后会自动生成默认的密码在执行记录中,注意复制出来</p> <pre><code class="language-bash">cat /data/mysql/log/mysql-error.log </code></pre> <h4>6.4.通命令启动mysql 服务</h4> <p><strong>CentOS7/8下命令启动mysql服务</strong></p> <pre><code class="language-bash">/etc/rc.d/mysqld start</code></pre> <p><strong>CentOS6下命令启动mysql服务</strong></p> <pre><code class="language-bash">service mysql start 或 /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> <p>使环境变量生效</p> <pre><code class="language-bash">source /etc/profile</code></pre> <h4>6.6.登录</h4> <pre><code class="language-bash">mysql -uroot -p or mysql -p Enter password: 输入默认的临时密码 登录成功后,修改密码 mysql&gt; set password=password('新密码');</code></pre> <h4>6.7.设置mysql的远程登录</h4> <pre><code class="language-bash">mysql&gt; grant all privileges on *.* to root@'%' identified by '你的密码'; 或 mysql&gt; alter user 'root'@'localhost' identified by '新密码'; mysql&gt; flush privileges; mysql&gt; \q</code></pre> <h3>7 设置开机自启动</h3> <h4>7.1.CentOS 7 / 8 随机启动配置</h4> <p>创建文件/lib/systemd/system/mysqld.service</p> <pre><code class="language-bash">vim /lib/systemd/system/mysqld.service</code></pre> <p>内容如下:</p> <pre><code class="language-bash">[Unit] Description=MySQL Server After=network.target [Service] Type=forking ExecStart=/etc/rc.d/mysqld start ExecStop=/etc/rc.d/mysqld stop [Install] WantedBy=multi-user.target</code></pre> <pre><code class="language-bash">systemctl daemon-reload</code></pre> <pre><code class="language-bash">systemctl start mysqld systemctl status mysqld systemctl stop mysqld</code></pre> <pre><code class="language-bash">systemctl enable mysqld</code></pre> <h4>7.2 CentOS 6 随机启动配置</h4> <p>MySQL服务器应该随机自启动,查看自启服务列表</p> <pre><code class="language-bash">chkconfig --list</code></pre> <p>添加mysql服务并设置自启动</p> <pre><code class="language-bash">chkconfig --add mysql chkconfig mysql on</code></pre> <p>再次查看自启服务列表,会看到mysql的2-5都显示开(有些显示的是 on),说明mysql服务会随机器启动而自动启动。</p> <h3>8 开启mysql端口3306</h3> <p>如果防火墙是开启状态的话,那我们先需要打开端口,才能远程登录,使用下面命令开放指定端口,然后重启防火墙</p> <pre><code class="language-bash">firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload</code></pre> <h3>9.测试mysql安装所有的安装成功?</h3> <pre><code class="language-bash">[root@localhost ~]# mysql --version mysql Ver 14.14 Distrib 5.7.29, for linux-glibc2.12 (x86_64) using EditLine wrapper</code></pre> <h3>9 创建数据库</h3> <p>建库、建用户、给用户授权</p> <pre><code class="language-bash">create database dbname DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; grant usage on dbname.* to 'dbuser'@'%' identified by 'dbuserpwd' with grant option; grant all privileges on dbname.* to 'dbuser'@'%'; flush privileges;</code></pre>

页面列表

ITEM_HTML