普通用户安装mysql 自用

普通用户无法运行yum安装mysql数据库,只能下载已编译好的二进制版本手动初始化建库,配置特定端口使用。

这里以 5.6.39版本为例)

 

  1. 下载prebuilt 的bin版本(或从源码编译)

下载 http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

这里的具体版本5.6.39请到http://mirrors.sohu.com/mysql/MySQL-5.6/下查看,可能会有小版本的更新。

 

普通用户安装mysql 自用_第1张图片

 

  1. 解压到一个目录:

tar -zxvf  mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

会创建一个子目录mysql-5.6.39-linux-glibc2.12-x86_64,进入这个目录ls,下面是他包含的子目录:

bin docs  include  lib  man  mysql-test  scripts  share  sql-bench  support-files

 

  1. 在此目录下建一个数据目录 udata 执行mysql_install_db命令初始化数据库:

mkdir udata

 

support-files目录下有一个 my-defaults.cnf的文件,拷贝到上级目录中改名为my.cnf,并修改文件的内容,主要修改 base_dir、 data_dir、 port、 bind-address四项:

base_dir  配置为 解压后得到的目录

data_dir  配置为 刚建的存放数据的目录

port      按初始规划的端口配置,不配置的话,取缺省为 3306

bind-address   缺省为127.0.0.1 ,建议配置成本机IP,如果不配置,只能本机连接,一般外网无法连接。

 

例如:

[mysqld]

 

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M

 

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

 

# These are commonly set, remove the # and set as required.

basedir = /opt/mysql

datadir = /opt/mysql/adata

port = 33306

# server_id = .....

# socket = .....

bind-address = 192.168.1.5

 

# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

join_buffer_size = 128M

sort_buffer_size = 2M

read_rnd_buffer_size = 2M

 

lower_case_table_names = 1

 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

配置完后,执行:

scripts/mysql_install_db --defaults-file=./my.cnf

会初始化数据库。

5.7版后  bin/mysqld --defaults-file=my.cnf  --initialize   记下随机生成的密码

 

上面数据库初始化后还没启动,使用下面的命令可启动数据库。

  1. 使用 bin/mysqld_safe --defaults-file=./my.cnf & 启动

5.7版后: bin/mysqld --defaults-file=my.cnf &启动

 

5.6版mysql初始数据库的初始密码还没设,用下面命令设初始密码:

bin/mysqladmin --defaults-file=my.cnf  -P 33306  -u root password "xxxx"

该命令设定本地连接的root用户的密码(xxxx是用户设定的密码)。

 

bin/mysqladmin --defaults-file=my.cnf  -P 33306 -h yyyy -u root password "xxxx"

该命令设定远程连接的root用户的密码(yyyy是mysql服务器的hostname或IP地址,xxxx是用户设定的密码)。

 

执行mysql提供参数进入的是mysql数据库的console,例如下面命令要求用root用户进入console,-p表示需要输入密码:

bin/mysql --defaults-file=my.cnf   -P 33306 -u root -p

 

mysql一个用户不同连接方式可以有不同的密码,可以用 create user ‘aaa’@’bbb’ identified by ‘ccc’   这个SQL语句创建,用alter user ‘aaa’@’bbb’ identified by ‘ccc’ 这个SQL语句修改。

 

下面是创建好数据库后,一些实用的创建用户和授权的参考SQL:

/*创建个hive用户密码是 hive@123,任何主机都可连,可访问任何对象*/

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive@123';

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' ;

FLUSH   PRIVILEGES;

 

/*创建个hive用户密码是 hive@123,仅服务器上可连,可访问任何对象*/

CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive@123';

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' ;

FLUSH   PRIVILEGES;

 

/*创建个hive用户密码是 hive@123,仅IP为192.168.11.28可连,可访问任何对象*/

CREATE USER 'hive'@'192.168.11.28' IDENTIFIED BY 'hive@123';

GRANT ALL PRIVILEGES ON *.* TO 'hive'@'hdp01' WITH GRANT OPTION ;

FLUSH   PRIVILEGES;

 

mysql数据库的console常用命令:

执行mysql提供参数进入的是mysql数据库的console,可以使用命令进行数据库的管理,常用的命令有:

use xxx;         切换连接某数据库

show databases;  列出所有的数据库

show tables;     列出当前数据库下所有的表

describe xxx;     列出表的结构

show variables like ‘version’ ;  列出数据库的版本

 

mysql数据库的表名缺省是大写存储的,并且大小写,有包含小写字符的表名要用引号括起来,如:

select * from “t01”

 

如果需要表名大小写不敏感(有的系统的数据初始化脚本要求这样),需要在my.cnf中加入下面一行:

lower_case_table_names = 1

上一步骤示例的my.cnf配置文件中已加上了。

 

  1. 停止 mysql 数据库:

bin/mysqladmin  --defaults-file=my.cnf -u root -p  shutdown

输入root密码后mysql数据库就停止了。

 

下面错误的服务器端解决办法:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'A.CLUSTER_ID' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

 

出现这个错误的原因是,MySQL5.7版后缺省的sql_mode中设置了 ONLY_FULL_GROUP_BY这个选项。

服务器端解决的办法是,在配置文件中去掉这个选项,例如上一步骤示例的my.cnf配置文件中已去掉了这行变成下面的内容了:

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

 

 

 

附:

  1. yum安装MySQL(以官方CentOS 7 yum源为例)

yum安装MySQL需要root权限,并且yum源中MySQL源的名称是mariadb-server.x86_64

官方源在base中包含了,目前的CentOS 7带的mariadb版本是 5.6.30。

 

# yum install mariadb-server.x86_64

 

安装完成后,缺省配置文件是 /etc/my.cnf :

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

 

[mysqld_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=/var/run/mariadb/mariadb.pid

 

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

 

在目录/etc/my.cnf.d可以增加用户的配置文件,官方配置文件的最后一句会将这个目录下的文件内容都包含进去。

 

安装完成后,mariadb添加了一个服务 mariadb.service。

启动:管理员采用 systemctl start mariadb.service 命令启动数据库服务。

第一次启动后,使用 mysql_secure_installation  命令执行安全初始化,添加root密码,删除匿名登录账户,禁止远程使用root用户登录,删除测试数据库

安装完成后,使用缺省端口,要修改端口,就修改/etc/my.cnf文件。

停止:管理员采用 systemctl stop mariadb.service 命令启动数据库服务。

 

转载于:https://my.oschina.net/u/3420782/blog/3069000

你可能感兴趣的:(普通用户安装mysql 自用)