MySQL安装部署&创建单独用户&配域名

MySQL安装配置

上传tar包到/uar/local目录下

[root@JD ~]# cd /usr/local
[root@JD local]# ll
total 43856
-rw-r--r--  1 root root 44908544 Nov 22 23:56 mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz

查看系统中是否有老的mysql进程和rpm文件

[root@JD local]# ps -ef |grep mysqld
root     17081 16006  0 16:52 pts/0    00:00:00 grep --color=auto mysqld
[root@JD local]# rpm -qa |grep mysql
[root@JD local]# rpm -qa |grep -i mysql 
[root@JD local]# 

解压并建立软连接

软连接(在相同路径下可以写相对路径,建议还是写绝对路径)

[root@JD local]# tar -zxvf mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz 
[root@JD local]# ln -s  mysql-5.6.23-linux-glibc2.5-x86_64 mysql     
[root@JD local]# ll
lrwxrwxrwx   1 root root        34 Nov 23 17:21 mysql -> mysql-5.6.23-linux-glibc2.5-x86_64
drwxr-xr-x  13 root root      4096 Nov 23 17:19 mysql-5.6.23-linux-glibc2.5-x86_64
-rw-r--r--   1 root root 311771412 Nov 23 17:18 mysql-5.6.23-linux-glibc2.5-x86_64.tar.gz

创建用户和用户组

创建组名为dba id为101的组
[root@JD local]# groupadd -g 101 dba
[root@JD local]# id dba
id: dba: no such user
创建用户mysqladmin 并且制定id为514 主组为dba 附加组为root 家目录为/usr/local/mysql
[root@JD local]# useradd -u 514 -g dba -G root -d /usr/local/mysql mysqladmin
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
查看用户
[root@JD local]# id mysqladmin
uid=514(mysqladmin) gid=101(dba) groups=101(dba),0(root)
切换用户发现样式丢失
[root@JD local]# su - mysqladmin
-bash-4.2$ exit
logout
修复样式
[root@JD local]# cp /etc/skel/.* /usr/local/mysql/
cp: omitting directory ‘/etc/skel/.’
cp: omitting directory ‘/etc/skel/..’
[root@JD local]# su - mysqladmin
Last login: Sat Nov 23 17:34:56 CST 2019 on pts/1
[mysqladmin@JD ~]$ exit

组的选项

	-f,--force 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与-g一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
	-g,--gid GID 这个值必须是唯一的,除非使用-o选项。但必须是非负的。默认值是使用大于或等于GID_MIN的最小值,并且大于每个其他组。
	-K,--key KEY=VALUE 重写/etc/login.defs默认值(GID_MINGID_MAX和其他)。可以指定多个K选项。示例:-K GID_MIN=100KGID_MAX=499。注意:-K GID_MIN=10,GID_MAX=499不能工作。
	-o,--non-unique 此选项允许添加一个非唯一的GID值。
	-p,--password PASSWORD 为新组使用此加密过的密码。默认为禁用密码。注意:不推荐使用这个选项,因为密码(或加密过的密码)会被用户通过列出这个过程而看到。您应该确保密码符合系统的密码政策。
	-r,--system 创建一个系统组。新的系统组数字标识符在SYS_GID_MINSYS_GID_MAX范围内选择,定义在login.defs中而不是GID_MINGID_MAX-R,--root CHROOT_DIR 将修改应用到CHROOT_DIR目录,并使用配置。

用户的选项

	-d,--home-dir HOME_DIR  创建新用户时,用HOME_DIR作为用户主目录。默认情况是将用户名附加到BASE_DIR(默认/home/)并将其用作主目录名称。

  -m,--create-home  其实这是一个临时开关,表示如果不存在用户主目录,则生成用户主目录(/home/[用户名]),骨架目录中的文件和目录(可以使用-k选项指定)将会被复制到主目录。默认上,如果没有指定此选项,并且/etc/login.defs(CREATE_HOME)的系统设置没有启用,则不会创建主目录。创建用户主目录必须存在且具有适当的SELinux环境和权限。否则无法创建或访问用户的主目录。

  -M,--no-create-home  和-m选项一样是一个临时开关,即使/etc/login.defs(CREATE_HOME)的系统设置是yes,也不创建用户的主目录。

  -g,--gid GROUP  用户初始登录组的组名或号码。组名必须已存在,组号码必须指代已存在的组。如果没有指定,useradd的行为将会依赖于/etc/login.defs文件中的USERGROUPS_ENAB参数。如果此参数设置为yes(或在命令行上指定了-U/--user-group),将会为用户创建一个组,组名和登录名相同。如果选项设置为no(或在命令行上指定-N/--no-user-group),useradd会把新用户的主组设置为/etc/default/useradd中GROUP变量指定的值,再或者默认100。

  -G,--groups GROUP1[,GROUP2,[GROUPN]]  用户还属于的附加组列表。每个组都用逗号隔开,中间没有空格。这里的组受到-g选项给定的组同样的限制。默认上,用户只属于初始组。(一个用户只允许有一个主组,可以有多个附加组)

  -s,--shell SHELL  用户登录shell名。默认为留空,让系统根据/etc/default/useradd中的SHELL变量选择默认的登录shell,默认为空字符串。有时需要禁止某些用户执行登录动作,例如用来执行系统服务的用户,这时将shell设置为/sbin/nologin就可以禁止用户登录。
 
 	-u,--uid UID  用户ID的数字值。此值必须为唯一的,除非使用了-o选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户ID最小值。

创建my.cnf文件并修改权限、修改所属用户名和组

修改之前可以先备份下
[root@JD local]# cp /etc/my.cnf /etc/my.cnf2191123
修改文件内容
[root@JD local]# vi /etc/my.cnf
[client]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock

[mysqld]
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock

skip-external-locking
key_buffer_size = 256M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
query_cache_size= 32M
max_allowed_packet = 16M
myisam_sort_buffer_size=128M
tmp_table_size=32M

table_open_cache = 512
thread_cache_size = 8
wait_timeout = 86400
interactive_timeout = 86400
max_connections = 600

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 32

#isolation level and default engine 
default-storage-engine = INNODB
transaction-isolation = READ-COMMITTED

server-id  = 1
basedir     = /usr/local/mysql
datadir     = /usr/local/mysql/data
pid-file     = /usr/local/mysql/data/hostname.pid

#open performance schema
log-warnings
sysdate-is-now

binlog_format = MIXED
log_bin_trust_function_creators=1
log-error  = /usr/local/mysql/data/hostname.err
log-bin=/usr/local/mysql/arch/mysql-bin
#other logs
#general_log =1
#general_log_file  = /usr/local/mysql/data/general_log.err
#slow_query_log=1
#slow_query_log_file=/usr/local/mysql/data/slow_log.err

#for replication slave
#log-slave-updates 
#sync_binlog = 1

#for innodb options 
innodb_data_home_dir = /usr/local/mysql/data/
innodb_data_file_path = ibdata1:500M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/arch
innodb_log_files_in_group = 2
innodb_log_file_size = 200M

innodb_buffer_pool_size = 2048M
innodb_additional_mem_pool_size = 50M
innodb_log_buffer_size = 16M

innodb_lock_wait_timeout = 100
#innodb_thread_concurrency = 0
innodb_flush_log_at_trx_commit = 1
innodb_locks_unsafe_for_binlog=1

#innodb io features: add for mysql5.5.8
performance_schema
innodb_read_io_threads=4
innodb-write-io-threads=4
innodb-io-capacity=200
#purge threads change default(0) to 1 for purge
innodb_purge_threads=1
innodb_use_native_aio=on

#case-sensitive file names and separate tablespace
innodb_file_per_table = 1
lower_case_table_names=1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[mysqlhotcopy]
interactive-timeout

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

修改用户和用户组权限
[root@JD local]# chown mysqladmin:dba /etc/my.cnf
赋640权限
[root@JD local]# chmod 640 /etc/my.cnf
修改完查看
[root@JD local]# ll /etc
-rw-r-----   1 mysqladmin dba    2218 Nov 23 17:43 my.cnf

修改软连接文件夹和原文件夹权限

修改软连接文件夹的用户和用户组权限
[root@JD local]# chown -R mysqladmin:dba /usr/local/mysql
[root@JD local]# chown -R mysqladmin:dba /usr/local/mysql/*
修改原文件夹的用户和用户组权限
[root@JD local]# chown -R mysqladmin:dba /usr/local/mysql-5.6.23-linux-glibc2.5-x86_64
查看是否修改成功
[root@JD local]# ll
total 304472
lrwxrwxrwx   1 mysqladmin dba         34 Nov 23 17:21 mysql -> mysql-5.6.23-linux-glibc2.5-x86_64
drwxr-xr-x  13 mysqladmin dba       4096 Nov 23 17:36 mysql-5.6.23-linux-glibc2.5-x86_64
[root@JD mysql]# ll
total 148
drwxr-xr-x  2 mysqladmin dba   4096 Nov 23 17:19 bin
-rw-r--r--  1 mysqladmin dba  17987 Jan 19  2015 COPYING
drwxr-xr-x  3 mysqladmin dba     17 Nov 23 17:19 data
drwxr-xr-x  2 mysqladmin dba     52 Nov 23 17:19 docs
drwxr-xr-x  3 mysqladmin dba   4096 Nov 23 17:19 include
-rw-r--r--  1 mysqladmin dba 102315 Jan 19  2015 INSTALL-BINARY
drwxr-xr-x  3 mysqladmin dba   4096 Nov 23 17:19 lib
drwxr-xr-x  4 mysqladmin dba     28 Nov 23 17:19 man
drwxr-xr-x 10 mysqladmin dba   4096 Nov 23 17:19 mysql-test
-rw-r--r--  1 mysqladmin dba   2496 Jan 19  2015 README
drwxr-xr-x  2 mysqladmin dba     29 Nov 23 17:19 scripts
drwxr-xr-x 28 mysqladmin dba   4096 Nov 23 17:19 share
drwxr-xr-x  4 mysqladmin dba   4096 Nov 23 17:19 sql-bench
drwxr-xr-x  2 mysqladmin dba    130 Nov 23 17:19 support-files
[root@JD mysql]# 
[root@JD mysql]# cd ../
[root@JD local]# cd mysql-5.6.23-linux-glibc2.5-x86_64 
[root@JD mysql-5.6.23-linux-glibc2.5-x86_64]# ll
total 148
drwxr-xr-x  2 mysqladmin dba   4096 Nov 23 17:19 bin
-rw-r--r--  1 mysqladmin dba  17987 Jan 19  2015 COPYING
drwxr-xr-x  3 mysqladmin dba     17 Nov 23 17:19 data
drwxr-xr-x  2 mysqladmin dba     52 Nov 23 17:19 docs
drwxr-xr-x  3 mysqladmin dba   4096 Nov 23 17:19 include
-rw-r--r--  1 mysqladmin dba 102315 Jan 19  2015 INSTALL-BINARY
drwxr-xr-x  3 mysqladmin dba   4096 Nov 23 17:19 lib
drwxr-xr-x  4 mysqladmin dba     28 Nov 23 17:19 man
drwxr-xr-x 10 mysqladmin dba   4096 Nov 23 17:19 mysql-test
-rw-r--r--  1 mysqladmin dba   2496 Jan 19  2015 README
drwxr-xr-x  2 mysqladmin dba     29 Nov 23 17:19 scripts
drwxr-xr-x 28 mysqladmin dba   4096 Nov 23 17:19 share
drwxr-xr-x  4 mysqladmin dba   4096 Nov 23 17:19 sql-bench
drwxr-xr-x  2 mysqladmin dba    130 Nov 23 17:19 support-files
[root@JD mysql-5.6.23-linux-glibc2.5-x
为原文件夹和软连接文件夹赋权限
[root@JD local]# chmod -R 755 /usr/local/mysql 
[root@JD local]# chmod -R 755 /usr/local/mysql/*
[root@JD local]# chmod -R 755 /usr/local/mysql-5.6.23-linux-glibc2.5-x86_64

切换用户准备安装

切换用户
[root@JD local]# su - mysqladmin
[mysqladmin@JD ~]$ pwd
/usr/local/mysql
arch存放binlog文件 backup存放恢复文件(本次安装没有用到)
[mysqladmin@JD ~]$ mkdir arch backup
使用mysqladmin进行安装 初始目录/usr/local/mysql 数据目录data,发现缺依赖

[mysqladmin@JD ~]$ scripts/mysql_install_db  \
> --user=mysqladmin \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data 

-bash: scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory

切回到root用户,安装依赖
[mysqladmin@JD ~]$ exit
logout
[root@JD local]# yum install -y perl

再次使用mysqladmin用户安装,还是缺依赖

[mysqladmin@JD ~]$ scripts/mysql_install_db  --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
Data::Dumper

切回到root用户,安装依赖
[mysqladmin@JD ~]$ exit
logout
[root@JD local]# yum install -y autoconf

再次使用mysqladmin用户安装,还是缺依赖
[mysqladmin@JD ~]$ scripts/mysql_install_db  --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

[mysqladmin@JD ~]$ scripts/mysql_install_db  --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

切回到root用户,安装依赖
[mysqladmin@JD ~]$ exit
logout
[root@JD local]# yum install -y libaio

再次使用mysqladmin用户安装,安装成功

[mysqladmin@JD ~]$ scripts/mysql_install_db  --user=mysqladmin --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

Installing MySQL system tables...2019-11-23 18:11:27 0 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
2019-11-23 18:11:27 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK

Filling help tables...2019-11-23 18:11:43 0 [Warning] 'THREAD_CONCURRENCY' is deprecated and will be removed in a future release.
2019-11-23 18:11:43 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

  /usr/local/mysql/bin/mysqladmin -u root password 'new-password'
  /usr/local/mysql/bin/mysqladmin -u root -h JD password 'new-password'

Alternatively you can run:

  /usr/local/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:

  cd . ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl

  cd mysql-test ; perl mysql-test-run.pl

Please report any problems at http://bugs.mysql.com/

The latest information about MySQL is available on the web at

  http://www.mysql.com

Support MySQL by buying support/licenses at http://shop.mysql.com

WARNING: Found existing config file /usr/local/mysql/my.cnf on the system.
Because this file might be in use, it was not replaced,
but was used in bootstrap (unless you used --defaults-file)
and when you later start the server.
The new default config file was created as /usr/local/mysql/my-new.cnf,
please compare it with your file and take the changes you need.

WARNING: Default config file /etc/my.cnf exists on the system
This file will be read by default by the MySQL server
If you do not want to use this, either remove it, or use the
--defaults-file argument to mysqld_safe when starting the server

配置服务并且启动

切换root用户
[mysqladmin@JD ~]$ exit
logout
[root@JD local]# cd /usr/local/mysql
[root@JD mysql]# ll
将服务文件拷贝到init.d下,并重命名为mysql
[root@JD mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysql
赋予可执行权限
[root@JD mysql]# chmod +x /etc/rc.d/init.d/mysql
如果部署过就先删除服务,第一次部署就添加服务
[root@JD mysql]# chkconfig --del mysql
[root@JD mysql]# chkconfig --add mysql
配置开启自启动,当然了,配置了也不生效,只能自己写个脚本
[root@JD mysql]# chkconfig --level 345 mysql on
[root@JD mysql]# vi /etc/rc.local 


#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local
su - mysqladmin -c "/etc/init.d/mysql start --federated"

切换用户
[root@JD mysql]# su - mysqladmin
Last login: Sat Nov 23 18:06:34 CST 2019 on pts/1
[mysqladmin@JD ~]$ ll
total 156
drwxr-xr-x  2 mysqladmin dba    110 Nov 23 18:11 arch
drwxr-xr-x  2 mysqladmin dba      6 Nov 23 18:01 backup
drwxr-xr-x  2 mysqladmin dba   4096 Nov 23 17:19 bin
-rwxr-xr-x  1 mysqladmin dba  17987 Jan 19  2015 COPYING
drwxr-xr-x  5 mysqladmin dba     87 Nov 23 18:11 data
drwxr-xr-x  2 mysqladmin dba     52 Nov 23 17:19 docs
drwxr-xr-x  3 mysqladmin dba   4096 Nov 23 17:19 include
-rwxr-xr-x  1 mysqladmin dba 102315 Jan 19  2015 INSTALL-BINARY
drwxr-xr-x  3 mysqladmin dba   4096 Nov 23 17:19 lib
drwxr-xr-x  4 mysqladmin dba     28 Nov 23 17:19 man
-rw-r--r--  1 mysqladmin dba    943 Nov 23 18:09 my.cnf
-rw-r--r--  1 mysqladmin dba    943 Nov 23 18:11 my-new.cnf
drwxr-xr-x 10 mysqladmin dba   4096 Nov 23 17:19 mysql-test
-rwxr-xr-x  1 mysqladmin dba   2496 Jan 19  2015 README
drwxr-xr-x  2 mysqladmin dba     29 Nov 23 17:19 scripts
drwxr-xr-x 28 mysqladmin dba   4096 Nov 23 17:19 share
drwxr-xr-x  4 mysqladmin dba   4096 Nov 23 17:19 sql-bench
drwxr-xr-x  2 mysqladmin dba    130 Nov 23 17:19 support-files

删除这俩文件,因为我们用的是/etc/my.cnf文件启动的
[mysqladmin@JD ~]$ rm -rf my.cnf my-new.cnf 
启动mysql服务
[mysqladmin@JD ~]$ service mysql start
Starting MySQL. SUCCESS! 
进入mysql(mysql5.6是初始密码是没有的,mysql5.7是有默认密码的)

[mysqladmin@JD ~]$ mysql -uroot -p

Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.23-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, 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启动后的操作

进入mysql后,设置root用户新密码,删除空密码,然后修改完后一定要执行flush privileges;进行权限的刷新

登录mysql,查看库(有四个库才算安装成功)
mysql> show databaes;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'databaes' at line 1
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

切库和设置root用户的新密码
mysql> use mysql  
Database changed
mysql> update user set password=password('mysqladmin') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

删除空账号
mysql> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
查询用户
mysql> select host,user,password from user
	-> ;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *A5C34F28328751B780896836C8A565C5C130175E |
| jd        | root | *A5C34F28328751B780896836C8A565C5C130175E |
| 127.0.0.1 | root | *A5C34F28328751B780896836C8A565C5C130175E |
| ::1       | root | *A5C34F28328751B780896836C8A565C5C130175E |
+-----------+------+-------------------------------------------+
4 rows in set (0.00 sec)
刷新一下权限,使设置的密码生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

配置个人环境变量

[mysqladmin@JD ~]$ vi .bashrc

export MYSQL_HOME=/usr/local/mysql
export PATH=$MYSQL_HOME/bin:$PATH
PS1=`uname -n`":"'$USER'":"'$PWD'":>"; export PS1

[mysqladmin@JD ~]$ source .bashrc
JD:mysqladmin:/usr/local/mysql:>echo $MYSQL_HOME
/usr/local/mysql
JD:mysqladmin:/usr/local/mysql:>which mysql
~/bin/mysql

部署出了问题,重新安装

如果部署出了问题
1检查执行的目录 用户
2重新部署

删除
rm -rf arch/*  #存放binlog文件
rm -rf data/*  #存放数据文件
binlog文件 数据文件

重新安装
scripts/mysql_install_db  \
--user=mysqladmin \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data 

允许外面机器(各种客户端)连接mysql

允许用户root从任意ip的主机连接到mysql服务器,并使用mysqladmin作为密码
mysql> grant all privileges on *.* to root@'%' identified by 'mysqladmin';
Query OK, 0 rows affected (0.00 sec)
刷新权限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

配域名

云主机

hosts文件自带的前两行一定不要删除;配置对应的是 内网ip hostname
shell脚本 程序 CDH部署 统统使用hostname:查看通不通使用ping hostname

[root@JD ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

windows

window 访问,IDEA开发 都是外网ip (虚拟的 漂着 重启 有变化的),统一的配置hostname,配置地方为:C:\Windows\System32\drivers\etc\hosts;内容为:外网ip hostname

你可能感兴趣的:(mysql)