centos7.3源码安装MySQL+环境配置+用户密码设置+远程访问配置

一、下载tar包

wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz/from/http://cdn.mysql.com/(我下载究极慢,几K/S)
或者
用主机下载好后使用XFTP6远程连接,直接把下载好的tar包复制到对应的linux目录下
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz/from/http://cdn.mysql.com/
在这里插入图片描述

二、yum方式安装相关依赖包**

yum -y install cmake bison git ncurses-devel gcc gcc-c++

三、创建一个用户名为mysql的用户并加入mysql用户组

groupadd mysql(创建用户组)

useradd -g mysql mysql(创建用户名属mysql用户组)

四、解压mysql-5.6.38.tar.gz,并且创建mysql安装目录和数据库文件存放目录

cd /Downloads(你刚才存放的tar压缩包位置)

tar zxvf mysql-5.6.38.tar.gz (解压)

mkdir /usr/local/mysql(创建一个解压的目录,喜欢就好)

mkdir /usr/local/mysql/data(创建目录)

cd mysql-5.6.38/(跳转目录)

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1(配置,注意上面编译的选择路径要和你前面创建好的目录一致,不然你上面mkdir就无意义了)

make(编译)

make install(安装)

五、创建MySQL Server系统表

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

chown -R mysql:mysql /usr/local/mysql(把初始化生成的 /usr/local/mysql/my.cnf 配置文件的属主数组更改为mysql)

六、配置

配置环境变量

先使用find / -name mysql 查看下lib的位置,我的lib位置是 /usr/lib64/mysql

vi /etc/profile

在后面加上

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
export PATH
注意了 上面的lib要换成你find结果lib的地址

变量生效

source /etc/profile

文件配置

find / -name my.cnf

(查看mysql的配置文件在哪里,可能有两个my.cnf,删掉其中一个,我的是在/etc/my.cnf和/etc/mysql/mycnf,因为我安装在/etc下,所有删掉rm /etc/my.cnf yes)

最终my.cnf环境配置在最后面

七、某些命令使用命令

systemtctl status mysql(mysql状态)

systemtctl start mysql(开始)

systemtctl stop mysql(停止)

systemtctl restart mysql(重启)

netstat -ntlp(查看端口网络状态)

八、用户密码设置

设置账号密码

mysql -uroot -p

mysql> select * form mysql.user\G;(查询所有用户信息,\G是显示方式)

(如果查询结果不出来,把安全模式关掉)

mysql> quit

在my.cnf中把safe-updates更改为safe-updates=0

记得重启才能生效

systemctl restart mysql

mysql -uroot -p(再次进入mysql)
mysql> select * form mysql.user\G;

发现所有root用户都没有密码(顺便发现一些user表中空账号。。)

给root添加密码

mysql> UPDATE user SET Password=PASSWORD('密码') where USER='root';
mysql> FLUSH PRIVILEGES;

添加个普通用户吧,毕竟root特权用户太强悍

只能进行本地连接的超级用户,

mysql> create user '用户名'@'127.0.0.1' identified by '密码’;
mysql> grant all privileges on *.*  to '用户名''@'127.0.0.1' identified by '密码' with grant option;
mysql> flush privileges;
  • ALL PRIVILEGES 是表示所有权限,你也可以使用select、update等权限。
  • ON 用来指定权限针对哪些库和表
  • *.*中前面的*用来指定数据库名,显然是所有,后面的*用来指定表名。
  • ‘用户名’@‘localhost’
    表示jack用户,@后面接限制的主机,可以是IP、IP段、域名以及%,%表示任何地方。注意:这里%有的版本不包括本地,以前碰到过给某个用户设置了%允许任何地方登录,但是在本地登录不了,这个和版本有关系,遇到这个问题再加一个localhost的用户就可以了。
  • IDENTIFIED BY 指定用户的登录密码。
  • WITH GRANT OPTION 这个选项表示该用户可以将自己拥有的权限授权给别人。注意:经常有人在创建操作用户的时候不指定WITH
    GRANT OPTION选项导致后来该用户不能使用GRANT命令创建用户或者给其它用户授权。

顺便删除空用户名…

mysql> delete from user where user='';
mysql> flush privileges;
mysql > SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;(查看所有用户及其权限)

九、my.cnf配置附加说明

\# For advice on how to change settings please see
\# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
\# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
\# *** default location during install, and will be replaced if you
\# *** upgrade to a newer version of MySQL.
 
[mysqld]
 
 
 
sql_mode=NO_ENGINE_SUBSTITUTION 
 
\# 一般配置选项
basedir = /etc/mysql
datadir = /etc/mysql/data
port = 3306 #端口
socket = /tmp/mysql.sock
character-set-server=utf8
 
 
back_log = 300
max_connections = 1000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M
 
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 = 512M
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M
 
 
innodb_log_file_size = 128M
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=1
 
[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M
 
[mysqlhotcopy]
interactive-timeout
 
[mysqld_safe]
open-files-limit = 8192

[client]

十、远程访问配置

我另一篇的3.4很详细。。

https://blog.csdn.net/xiedongze__/article/details/90714356

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章