mysql 8.0 安装配置方法教程
一、安装mysql yum源 从官网http://dev.mysql.com/downloads/repo/yum/下载mysql最新的yum源的rpm安装包 wget http://repo.mysql.com//mysql57-community-release-el6-9.noarch.rpm 使用yum安装rpm包 yum install mysql57-community-release-el6-9.noarch.rpm 检测mysql yum源 yum repolist enabled | grep "mysql.*-community.*" 二、从mysql yum源中选择mysql安装版本 1、查看mysql yum仓库的资源 yum repolist all | grep mysql 2、修改msql yum源配置中的 enabled选项,如要安装mysql5.8,将mysql57-community中的enabled=1修改为enabled=0 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 将mysql80-community中enabled=0修改为enabled=1 # Enable to use MySQL 8.0 [mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 3、查看当前yum源可以安装的版本 yum repolist enabled | grep mysql 三、安装mysql yum install mysql-community-server 四、启动mysql服务器 service mysqld start 1、初始化msql 2、一个SSL证书和密钥文件在数据目录中生成(/var/lib/mysql)。 3、 validate_password plugin 被安装 4、一个超级用户帐号'root'@'localhost 被创建,并且会为帐号生成随机密码,随机密码存储在错误日志文件里面。要显示它,使用以下命令:grep 'temporary password' /var/log/mysqld.log shell> mysql -uroot -p mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; 五、查看mysql启动状态 shell>service mysqld status mysqld (pid 20726) is running... 六、安装启动问题 1、mysql启动出现"initialize specified but the data directory has files in it. Aborting"错误? 将目录/var/lib/mysql删除后重新启动即可 rm /var/lib/mysql service mysqld start 七、mysql常用命令 1、连接Mysql 1)、连接到本机上的MYSQL。 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2)、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令: 3)、退出MYSQL命令: exit (回车) 2、修改密码 1)、给root加个密码ab12。 2)、再将root的密码改为djg345。 mysqladmin -u root -p ab12 password djg345 3、增加新用户 格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码” 1)、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入MYSQL,然后键入以下命令: grant select,insert,update,delete on *.* to [email=test1@”%]test1@”%[/email]” Identified by “abc”; 但增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见2。 2)、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。 如果你不想test2有密码,可以再打一个命令将密码消掉。 4、数据库操作 4.1 创建数据库 注意:创建数据库之前要先连接Mysql服务器 命令:create database <数据库名> 例1:建立一个名为xhkdb的数据库 例2:创建数据库并分配用户 ①CREATE DATABASE 数据库名; ②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码'; ③SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码'); 依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。 命令:show databases (注意:最后有个s) 注意:为了不再显示的时候乱码,要修改数据库默认编码。以下以GBK编码页面为例进行说明: 1、修改MYSQL的配置文件:my.ini里面修改default-character-set=gbk ①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk 4.3 删除数据库 例子1:删除一个已经确定存在的数据库 mysql> drop database drop_database; Query OK,0 rows affected (0.00 sec) 例子2:删除一个不确定存在的数据库 mysql> drop database drop_database; ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist //发生错误,不能删除'drop_database'数据库,该数据库不存在。 mysql> drop database if exists drop_database; Query OK,0 rows affected,1 warning (0.00 sec)//产生一个警告说明此数据库不存在 mysql> create database drop_database; Query OK,1 row affected (0.00 sec) mysql> drop database if exists drop_database;//if exists 判断数据库是否存在,不存在也不产生错误 Query OK,0 rows affected (0.00 sec) 4.4 连接数据库 例如:如果xhkdb数据库存在,尝试存取它: use 语句可以通告MySQL把db_name数据库作为默认(当前)数据库使用,用于后续语句。该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的USE语句: mysql> USE db1; mysql> SELECT COUNT(*) FROM mytable; # selects from db1.mytable mysql> USE db2; mysql> SELECT COUNT(*) FROM mytable; # selects from db2.mytable 使用USE语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下面的例子可以从db1数据库访问作者表,并从db2数据库访问编辑表: mysql> USE db1; mysql> SELECT author_name,editor_name FROM author,db2.editor -> WHERE author.editor_id = db2.editor.editor_id; USE语句被设立出来,用于与Sybase相兼容。 有些网友问到,连接以后怎么退出。其实,不用退出来,use 数据库后,使用show databases就能查询所有数据库,如果想跳到其他数据库,用 4.5 当前选择的数据库 MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能? 1.显示MYSQL的版本 mysql> select version(); +-----------------------+ | version() | +-----------------------+ | 6.0.4-alpha-community | +-----------------------+ 1 row in set (0.02 sec) 2. 显示当前时间 mysql> select now(); +---------------------+ | now() | +---------------------+ | 2009-09-15 22:35:32 | +---------------------+ 1 row in set (0.04 sec) 3. 显示年月日 SELECT DAYOFMONTH(CURRENT_DATE); +--------------------------+ | DAYOFMONTH(CURRENT_DATE) | +--------------------------+ | 15 | +--------------------------+ 1 row in set (0.01 sec) SELECT MONTH(CURRENT_DATE); +---------------------+ | MONTH(CURRENT_DATE) | +---------------------+ | 9 | +---------------------+ 1 row in set (0.00 sec) SELECT YEAR(CURRENT_DATE); +--------------------+ | YEAR(CURRENT_DATE) | +--------------------+ | 2009 | +--------------------+ 1 row in set (0.00 sec) 4. 显示字符串 mysql> SELECT "welecome to my blog!"; +----------------------+ | welecome to my blog! | +----------------------+ | welecome to my blog! | +----------------------+ 1 row in set (0.00 sec) 5. 当计算器用 select ((4 * 4) / 10 ) + 25; +----------------------+ | ((4 * 4) / 10 ) + 25 | +----------------------+ | 26.60 | +----------------------+ 1 row in set (0.00 sec) 6. 串接字符串 select CONCAT(f_name," ",l_name) AS Name from employee_data where title = 'Marketing Executive'; +---------------+ | Name | +---------------+ | Monica Sehgal | | Hal Simlai | | Joseph Irvine | +---------------+ 3 rows in set (0.00 sec) 注意:这里用到CONCAT()函数,用来把字符串串接起来。另外,我们还用到以前学到的AS给结果列'CONCAT(f_name,l_name)'起了个假名。 5、数据表操作 5.1 创建数据表 例如,建立一个名为MyClass的表:
mysql> create table MyClass( > id int(4) not null primary key auto_increment,> name char(20) not null,> sex int(4) not null default '0',> degree double(16,2)); 5.2 删除数据表 例如:删除表名为 MyClass 的表 DROP TABLE用于取消一个或多个表。您必须有每个表的DROP权限。所有的表数据和表定义会被取消,所以使用本语句要小心! 注意:对于一个带分区的表,DROP TABLE会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。DROP TABLE还会取消与被取消的表有关联的分区定义(.par)文件。 对与不存在的表,使用IF EXISTS用于防止错误发生。当使用IF EXISTS时,对于每个不存在的表,会生成一个NOTE。 RESTRICT和CASCADE可以使分区更容易。目前,RESTRICT和CASCADE不起作用。 5.3表插入数据 例如:往表 MyClass中插入二条记录,这二条记录表示:编号为1的名为Tom的成绩为96.45,编号为2 的名为Joan 的成绩为82.99, 编号为3 的名为Wang 的成绩为96.5。 注意:insert into每次只能向表中插入一条记录。 5.4查询表中的数据 2)、查询前几行数据 select一般配合where使用,以查询更精确更复杂的数据。 5.5 删除表中数据 命令:delete from 表名 where 表达式 例如:删除表 MyClass中编号为1 的记录 下面是一个删除数据前后表的对比。 下面以PHP代码为例删除 "Persons" 表中所有 LastName='Griffin' 的记录: <?php $con = mysql_connect("localhost","peter","abc123"); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("my_db",$con); mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con); ?> 在这次删除之后,表是这样的: 5.6修改表中数据 例子1:单表的MySQL UPDATE语句: 例子2:多表的UPDATE语句: UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。 5.7增加字段 加索引 加主关键字的索引 加唯一限制条件的索引 删除某个索引 增加字段: 修改原字段名称及类型: 删除字段: 5.8修改表名 例如:在表MyClass名字更改为YouClass 当你执行 RENAME 时,你不能有任何锁定的表或活动的事务。你同样也必须有对原初表的 ALTER 和 DROP 权限,以及对新表的 CREATE 和 INSERT 权限。 如果在多表更名中,MySQL 遭遇到任何错误,它将对所有被更名的表进行倒退更名,将每件事物退回到最初状态。 RENAME TABLE 在 MySQL 3.23.23 中被加入。 6、备份数据库 1.导出整个数据库 2.导出一个表 3.导出一个数据库结构 4.带语言参数导出 例如,将aaa库备份到文件back_aaa中: 7.1 一个建库和建表的实例1 drop database if exists school; //如果存在SCHOOL则删除 create database school; //建立库SCHOOL use school; //打开库SCHOOL create table teacher //建立表TEACHER ( id int(3) auto_increment not null primary key,name char(10) not null,address varchar(50) default ‘深圳',year date ); //建表结束 //以下为插入字段 insert into teacher values(”,'allen','大连一中','1976-10-10′); insert into teacher values(”,'jack','大连二中','1975-12-23′); 如果你在mysql提示符键入上面的命令也可以,但不方便调试。 2、或者进入命令行后使用 mysql> source c:school.sql; 也可以将school.sql文件导入数据库中。 7.2 一个建库和建表的实例2 drop database if exists school; //如果存在SCHOOL则删除 create database school; //建立库SCHOOL use school; //打开库SCHOOL create table teacher //建立表TEACHER ( id int(3) auto_increment not null primary key,address varchar(50) default ''深圳'',year date ); //建表结束 //以下为插入字段 insert into teacher values('''',''glchengang'',''深圳一中'',''1976-10-10''); insert into teacher values('''',''jack'',''1975-12-23''); 注:在建表中 2、将NAME设为长度为10的字符字段 3、将ADDRESS设为长度50的字符字段,而且缺省值为深圳。 4、将YEAR设为日期字段。 参考文档: 精彩专题分享:mysql不同版本安装教程 mysql5.7各版本安装教程 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。 您可能感兴趣的文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |