MySQL 安装与使用 一 什么是 MySQL MySQL (发音为 My Ess Que Ell )是 Tcx 公司()开发的一个多人使用 多执行绪的 SQL
资料库 Server MySQL 主要的目标在快速 稳定和容易使用 MySQL 可在此 取得 二 MySQL 的安装 本文所使用的 MySQL 版本为 mysql tar gz(原始码档) 作业环境为 RedHat +CLE MySQL 预设情况下会安装至 /usr/local 目录下 不过为了日后移除方便 建议将 mysql 独立安装在 /usr/local/mysql 目录 底下为安装 MySQL 的步骤 取得 mysql tar gz 后 于 /usr/local 目录下解开 # cd /usr/local# tar zxvf mysql tar gz# cd mysql 设定 configure 安装选项 选择安装目录 (prefix)以及支援中文 Big 码(with charset=big ) # /configure prefix=/usr/local/mysql # with charset=big 开始编译并安装 # make# make install# scripts/mysql_install_db最后一个步骤是用来产生 MySQL grant tables(会建立一个 mysql 资料库和一些 tables 用来管理使用 MySQL 的授权资讯 也就是使用者有哪些使用资料库的权限) 三 启动 停止 MySQL 要启动 MySQL 的方法 (以本文将 MySQL 安装在 /usr/local/mysql 为例)# /usr/local/mysql/share/mysql server start注意在第一次执行前 须将 mysql server 设成可执行(chmod mysql server) 另外可将这行指令加在 /etc/rc d/rc local 档中 让 MySQL 在开机时自动启动 要停止 MySQL 的方法 # /usr/local/mysql/bin/mysqladmin shutdown如果你为 MySQL Administrator root
帐号(非作业系统的 root)设了
密码 要停止 MySQL 则必须像下列这样做 MySQL 会询问你 root 的密码后才会执行 shutdown 的工作 # /usr/local/mysql/bin/mysqladmin u root p shutdown 四 管理与使用 MySQL 简介 在你开始前MySQL 提供了许多工具 (Client Tools)来与 MySQL 资料库 Server 连线 其中最主要的为 mysql 交谈式连线工具与 mysqladmin 公用程式 大部份时候使用者会用 mysql 来和资料库 Server 交谈 底下就以 mysql 连线工具来介绍如何维护与使用 MySQL (以本文安装为例 mysql 工具位于 /usr/local/mysql/bin/mysql) mysql 的使用语法如下 mysql [ u username] [ h host] [ p[password]] [dbname]MySQL 资料库有自己一套使用者帐号与权限管控方法 所以这边所指定的 username 与 password 是 MySQL 的使用者与密码 而不是作业系统的使用者与密码(当然任何使用者都能执行 mysql 然后以 MySQL 的任何帐号进入使用) 在你第一次安装好 MySQL 时 MySQL 的管理帐号为 root 没有设定密码 (非作业系统的 root) 所以在开始前 请先照下列步骤为 root 设好密码 使用 mysql 与 MySQL 资料库 Server 连线 # /usr/local/mysql/bin/mysql u root mysqlReading table information for pletion of table and column namesYou can turn off this feature to get a quicker startup with AWele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>在下了 mysql u root mysql 指令 指定以 root 帐号并开启 mysql 系统资料库 连线至 MySQL 后 会看到一些提示讯息与 mysql 工具的提示符号 以后大部份的工作皆在此提示符号下完成 更改 MySQL系统管理者 root 密码 mysql>update user set password=password( 新密码 ) where user= root Query OK rows affected ( sec)Rows matched: Changed: Warnings: mysql>FLUSH PRIVILEGESQuery OK rows affected ( sec)mysql>quitBye注意每个指令后要加上一个分号 才会让 mysql 开始执行 而第二道指令会让已载入记忆体的 mysql 系统资料库更新 最后离开 mysql 工具程式 在更新 root 密码后 日后要与 MySQL 连线的方法为 mysql u root p新密码或者是这样 让 mysql 询问 root 的密码 mysql u root p资料库维护接下来 我们以简单的通讯录资料库作为例子 来介绍如何用 mysql 工具程式来做资料库的维护(新增 授权 资料表维护等) 首先 以 MySQL root 帐号连线后建立一 addbook 资料库 # /usr/local/mysql/bin/mysql u root pEnter password:Wele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>create databae addbookQuery OK row affected ( sec)指定使用 addbook 资料库 并建立一个 friends 资料表 mysql>use addbookDatabase changedmysql>create table friends ( >name Char( ) >telphone VarChar( ) >icq Char( ) >address VarChar( ) >)Query OK rows affected ( sec)新增几笔资料 并查询看看 mysql>insert into friends values( >maa 台北县新庄市 >)Query OK row affected ( sec)mysql>insert into friends (name icq telphone address ) Values ( >cxlin 台北县 >)Query OK row affected ( sec)mysql>select * from friends+ + + + +| name | telphone | icq | address |+ + + + +| maa | | | 台北县新庄市 || cxlin | | | 台北县 |+ + + + + rows in set ( sec)第二个 insert 指令指定了资料栏位的插入顺序 用法较第一个为d性 而第一个指令必须依资料表建立结构时的顺序插入资料 更新 删除资料表记录 mysql>update friends set address = 桃园县 where name = cxlin Query OK row affected ( sec)Rows matched: Changed: Warnings: mysql>select * from friends where name = cxlin + + + + +| name | telphone | icq | address |+ + + + +| cxlin | | | 桃园县 |+ + + + + row in set ( sec)mysql>delete from friends where name = maa Query OK row affected ( sec)mysql>select * from friends+ + + + +| name | telphone | icq | address |+ + + + +| cxlin | | | 桃园县 |+ + + + + row in set ( sec)最后 建好资料库与资料表后 把 addbook 资料库中所有资料表的使用权限(select insert update delete)授权给 maa@localhost(再次提醒 此处的 maa 为 MySQL 的使用者帐号 而非作业系统的 maa 帐号) mysql>grant select insert update delete >on addbook * >to maa@localhost identified by Query OK rows affected ( sec)之后 可用 maa 的身份进入 MySQL 存取 addbook 资料库 # /usr/local/mysql/bin/mysql u maa p addbookEnter password:Reading table information for pletion of table and column namesYou can turn off this feature to get a quicker startup with AWele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>status /mysql Ver Distrib for pc linux gnu (i )Connection id: Current database: addbookCurrent user: maa@localhostServer version Protocol version Connection Localhost via UNIX socketUNIX socket /tmp/mysql sockUptime: hours min secThreads: Questions: Slow queries: Opens: Flush tables: Open lishixinzhi/Article/program/MySQL/201311/29503
1、在opt目录里面新建两个文件夹
(1)mySoftware:用于存放软件安装包
(2)mysql:安装mysql的文件夹
2、解压mysql安装包:tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql
3、进入mysql目录,依次执行下面命令:
4、启动MySQL服务
(1)systemctl start mysqld:启动mysql服务器
(2)systemctl restart mysqld:重启mysql服务器
(3)systemctl stop mysqld:停止mysql服务器
5、查询自动生成的root用户密码
6、修改root用户密码
登录到MySQL之后,需要将自动生成的不便记忆的密码修改了,修改成自己熟悉的便于记忆的密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234'
7、 默认的root用户只能当前节点localhost访问,是无法远程访问的,我们还需要创建一个root账户,用户远程访问
并给root用户分配权限
grant all on *.* to 'root'@'%'
MySql安装
yum -y install libaio
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
cd /usr/local/soft/mysql/src
mkdir ../5.7.24_3306 &&tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C ../5.7.24_3306 --strip-components 1
mkdir -p /usr/local/soft/mysql/5.7.24_3306/{run,data,logs,bin_log,sock,cert}
groupadd mysql &&useradd -r -g mysql -s /bin/false mysql
cd /usr/local/soft/mysql/5.7.24_3306/bin &&./mysqld --initialize
--explicit_defaults_for_timestamp
--user=mysql
--basedir=/usr/local/soft/mysql/5.7.24_3306
--datadir=/usr/local/soft/mysql/5.7.24_3306/data
--lc_messages_dir=/usr/local/soft/mysql/5.7.24_3306/share
--lc_messages=en_US
2018-12-01T09:56:45.934627Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-12-01T09:56:46.056837Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-12-01T09:56:46.127141Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 69d028f9-f54f-11e8-9c4a-00163e08e793.
2018-12-01T09:56:46.130249Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-12-01T09:56:46.131377Z 1 [Note] A temporary password is generated for root@localhost: sDdPx3>.,oBi
cd /usr/local/soft/mysql/5.7.24_3306/bin &&./mysql_ssl_rsa_setup --datadir=/usr/local/soft/mysql/5.7.24_3306/cert
修改证书权限为644
cd /usr/local/soft/mysql/5.7.24_3306/bin &&./mysql -uroot -S /usr/local/soft/mysql/5.7.24_3306/sock/mysql.sock
use mysql
update user set host = '%', authentication_string = password('123456') where user = 'root'
select host,user,authentication_string from user
flush privileges
grant all privileges on . to 'root'@'%'
flush privileges
cat >/etc/systemd/system/3306.service <<EOF
[Unit]
Description=MySQL 3306
Documentation= http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/soft/mysql/5.7.24_3306/run/mysql.pid
ExecStart=/usr/local/soft/mysql/5.7.24_3306/support-files/mysql.server start
ExecReload=/usr/local/soft/mysql/5.7.24_3306/support-files/mysql.server restart
ExecStop=/usr/local/soft/mysql/5.7.24_3306/support-files/mysql.server stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl enable 3306.service
1、
cd /usr/local/soft/mysql/5.7.24.3306/bin &&./mysqld_safe --skip-grant-tables &
cd /usr/local/soft/mysql/5.7.24.3306/bin &&./mysqld_safe --skip-grant-tables --skip-networking &
2、
./mysql -uroot -p -S /usr/local/soft/mysql/5.7.24.3306/sock/mysql.sock
3、
use mysql
update mysql.user set authentication_string=password('123456') where user='root'
flush privileges
mkdir -p /usr/local/soft/mysql/back/5.7.23_3306 &&cp -Rf /usr/local/soft/mysql/5.7.23_3306/* /usr/local/soft/mysql/back/5.7.23_3306
mkdir -p /usr/local/soft/mysql/back/5.7.24_3306 &&cp -Rf /usr/local/soft/mysql/5.7.24_3306/* /usr/local/soft/mysql/back/5.7.24_3306
CREATE USER 'sdyc'@'%' IDENTIFIED BY '123456'
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON sd_data.* TO 'sdyc'@'%'
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON card_data.* TO 'sdyc'@'%'
SHOW GRANTS FOR sdyc
CREATE USER 'back'@'localhost' IDENTIFIED BY '123456'
GRANT SELECT, RELOAD, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION CLIENT ON . TO 'back'@'localhost'
SHOW GRANTS FOR back
REVOKE SELECT, INSERT, UPDATE, DELETE, EXECUTE ON sd_data.* FROM 'sdyc'@'%'
评论列表(0条)