Linux下安装MySQL

1.首先上传安装包 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz  到/root下

2.解压:

[root@master ~]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

3.将目录移动到/usr/local/,并改名为mysql

[root@master local]# mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local
[root@master local]# mv mysql-5.7.21-linux-glibc2.12-x86_64/ mysql

4.创建数据存放目录

[root@master local]# mkdir /data/mysqldata


5.创建mysql组

   [root@master local]# groupadd mysql--创建mysql用户组组

[root@master local]# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql--创建mysql用户并添加到mysql用户组中
[root@master local]# chown -R mysql mysql/ --将mysql目录访问权限赋为myql用户
[root@master local]# chgrp -R mysql mysql/ --改变mysql目录的用户组属于mysql组
[root@master local]# chown -R mysql mysql/data/mysqldata

6.配置参数

[root@master mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/mysqldata/
出现以下
[root@master mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/mysqldata/
2018-04-12T06:18:51.569689Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-04-12T06:18:51.569775Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2018-04-12T06:18:51.569784Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
 100 200 300 400 500
 100 200 300 400 500
 100 200 300 400 500
2018-04-12T06:18:56.217275Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-04-12T06:18:56.322071Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-04-12T06:18:56.421876Z 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: 6169a67e-3e19-11e8-b82d-000c29e34b81.
2018-04-12T06:18:56.426078Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-04-12T06:18:56.443850Z 1 [Note] A temporary password is generated for root@localhost: fndMSDfSY4=L

fndMSDfSY4=L为临时密码,记下来

其中出现错误,则清空mysqldata目录,初始化数据该目录中不能有数据)

7.#配置参数,遇到问题,先跳过

[root@master mysql]# bin/mysql_ssl_rsa_setup --datadir=/data/mysqldata/

2018-04-12 11:53:16 [ERROR]   Failed to access directory pointed by --datadir. Please make sure that directory exists and is accessible by mysql_ssl_rsa_setup. Supplied value : /data/mysqldata

8.手动创建

vim /etc/my.cnf 

[client]

port = 3306


socket = /var/run/mysqld/mysqld.sock   #该路径要与下面的路径一致,否则会报错
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 一般配置选项
basedir = /usr/local/mysql   #mysql安装路径
datadir = /usr/local/mysql/data/mysqldata   #数据存储路径
port = 3306
socket = /var/run/mysqld/mysqld.sock   #该路径要与上面的路径一致,否则会报错
character-set-server=utf8
back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
skip-grant-tables
max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8
thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6
server_id=1
innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on
[mysqldump]
quick
max_allowed_packet = 32M
[mysql]
no-auto-rehash
default-character-set=utf8
safe-updates
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192

9.配置mysqld

[root@master mysql support-files]# cp mysql.server /etc/init.d/mysqld

[root@master mysql support-files]# vim /etc/init.d/mysqld

将路径配置好

basedir = /usr/local/mysql   #mysql安装路径
datadir = /usr/local/mysql/data/mysqldata   #数据存储路径

1. 启动MySQL

[root@master mysql]# bin/mysqld_safe --user=mysql & #检测

[root@master mysql]# /etc/init.d/mysql start

(这里会报错,因为找不到mysqld文件夹,所以要创建并赋予权限。)

# cd /var/run/

mkdir mysqld

chown -R mysql mysqld 

chgrp -R mysql mysqld

/etc/init.d/mysqld start

登录mysql已经修改密码:
如果使用bin/mysql -uroot -p无法登录时,可以使用以下办法进行密码重设:
修改/etc/my.cnf文件
在[mysqld]下面添加“skip-grant-tables”

(skip-grant-tables命令为跳过验证,直接登录。个人认为好比linux的单用户模式,来进行mysql的密码修改。)
重启mysql


用户登陆:

mysql -uroot -p

Enter password: 123456     出现以下信息则表示成功

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.21 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> ^C


出现mysql>则表示登陆成功(quit退出)

接下来练习以下使用:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

4 rows in set (0.01 sec)

系统会自带几个数据,例如performance_schema ,information_schema,mysql。这几个自带的数据库最好不要删,以免它出异常。

查看了数据库之后有两种可能,要么自己新建设一个数据库,要么就是删除一个数据库,所以我将两者合在一起记录,使用的时候知道他们是同一级别就可以了。

新建一个数据库命令:> create database 数据库名称;

删除一个数据库命令:> drop database 数据库名称; (以下图片中以”fuck“这个数据库名称为实例)

mysql> create database test;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

5 rows in set (0.00 sec)

那么问题来了,这么多数据库,加入你要往“newone”中加入一些数据,那么mysql是如何知道你要使用的是这个数据库,而不是其它的数据库呢?这就要使用命令:> use 数据库名称;

下图以数据库newone为例;成功切换数据库之后,系统会提示数据库已经切换。好比你在许多房的的旅馆里,旅馆老板给了你想要的那个房间的钥匙,那么现在你就可以自由进入那个房间了。

mysql> use test
Database changed

对数据库而言也是如此,进来之后首先要查看一下数据库中的”表“(数据库中可以放很多表这是不容质疑的,就像房间里可以放置多种多样的家具一样,查看一下是否有没有表或你需要的表)。

查看表命令:> show tables; (由于是新建的表,就像新买的房,里面是空的。)

mysql> show tables;
Empty set (0.00 sec)

我们要为数据库添加表:

建立一个新表:> create table 表名 (字段参数); 或 >create table if not exists 表名(字段参数)

删除一个旧表:>drop table 表名; 或 >drop table if exists 表名



mysql> create table student(name varchar(20),age int,score int);
Query OK, 0 rows affected (0.08 sec)

mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| student        |
+----------------+
1 row in set (0.01 sec)











修改环境变量:
将mysql的bin路径添加到/etc/profile
# vim /etc/profile
添加:
export PATH=/usr/local/src/mysql/bin:$PATH
# source /etc/profile
配置mysql自动启动
#chmod 755 /etc/init.d/mysqld
#chkconfig --add mysqld
#chkconfig --level 345 mysqld on


 附:

执行userdel -rf mysql删除用户失败,提示userdel: user 'mysql' is currently logged in

问题分析

NA

问题解决

  1、ps -fu oracle查看是否还有进程在使用(也可以使用ps -ef |grep 'mysql'| grep -v grep),如果有进程在使用。kill掉相关进程

  2 、重新执行userdel -rf mysql,如果失败,则执行步骤3

  3、删除 /var/run/utmp文件。cd /var/run; mv utmp utmp_bak;touch utmp

  4、重新执行userdel -rf mysql。


[root@master mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/mysqldata/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值