Ubuntu 安装和使用 Supervisor(进程管理) 系统守护
2019年5月20日
Supervisor 是一个用 Python 写的进程管理工具,可以很方便的对进程进行启动、停止、重启等操作。
安装命令:
apt-get install supervisor
安装成功后,会在
目录下,生成
配置文件。
进程配置会读取
目录下的
配置文件,我们在此目录下创建一个
进程配置文件:
配置示例:
[program:beepkg]
directory = /opt/app/beepkg #这里是程序所在目录
command = /opt/app/beepkg/beepkg #这里是程序所在目录下的启动程序
autostart = true
startsecs = 5
user = root
redirect_stderr = true
stdout_logfile = /var/log/supervisord/beepkg.log
命令重启配置:
supervisorctl reload
至此配置基本完成,进程也启动起来了。
supervisor有supervisord和supervisorctl两种命令类型,supervisord是服务相关的命令,supervisorctl是客户端相关的命令,它们的使用方法很简单.
查看supervisorctl和启动子进程方式
supervisorctl status <span class="hljs-comment">#查看supervisorctl状态</span>
supervisorctl start nginx <span class="hljs-comment">#启动子进程nginx</span>
supervisorctl stop nginx <span class="hljs-comment">#关闭子进程nginx</span>
supervisorctl restart nginx <span class="hljs-comment">#重启子进程nginx
</span>
通过ps aux|grep supervisord是否已启动
<span class="hljs-comment"> </span>
ubuntu下root能成功,但图形界面登录报错ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
2019年5月19日
开放root@localhost在图形界面登录权限
问题很奇葩,ubuntu下用root登陆mysql可以成功,但通过图形界面登陆mysql却报错: ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
输入命令,登陆mysql
sudo mysql -u root -p
查看user表:
select user, plugin from mysql.user;
结果如下:参考9问题
| user | plugin |
+——————+———————–+
| root | auth_socket |
发现root的plugin并不是本地密码,因此需要修改它,但由于MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。如果修改的密码太过低级,则无法通过,报如下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
先在mysql登陆下,修改密码策略,依次输入命令
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;
继续修改root用户对应密码,输入命令
update mysql.user set authentication_string=PASSWORD(‘输入root用户的密码‘), plugin=‘mysql_native_password’ where user=‘root’;
继续输入命令,刷新
flush privileges;
重启mysql
我是ubuntu系统,输入命令为。其他系统输入常用重启mysql命令即可
sudo /etc/init.d/mysql restart
进入mysql,查看user表root密码是不是本地
最后通过图形界面访问 ‘root’@’localhost’成功!
linux下VI编辑相关命令
2019年5月19日
1、linux下进入VI编辑,如何开始编辑、保存、退出?
按a 或者 i 开始编辑
按esc退出编辑模式 也可以按Ctrl c 或者 exit
按:wp 保存退出
:q! 不保存文件,强制退出vi命令 :w 保存文件,不退出vi命令 :wq 保存文件,退出vi命令
linux下mysql相关命令 ubuntu18.04系统
2019年5月18日
1、如何登陆mysql、退出mysql
进入mysql,在根目录下,输入命令 mysql -uroot -p,后面输入数据库密码
退出mysql,在mysql下,输入命令 quit或者exit
2、Linux查看mysql 安装路径
可以用下面的命令查看所有的文件路径 ,在终端输入:
whereis mysql
回车,如果你安装好了mysql,就会显示文件安装的地址,例如我的显示(安装地址可能会不同)
[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
3、查询运行文件所在路径(文件夹地址)
如果你只要查询文件的运行文件所在地址,直接命令(还是以mysql为例):
which mysql
终端显示:
[root@localhost ~]# which mysql
/usr/bin/mysql
4、查看mysql数据库文件存储位置
进入mysql后,输入命令
show global variables like “%datadir%”;
返回结果:
mysql> show global variables like “%datadir%”;
+—————+—————–+
| Variable_name | Value |
+—————+—————–+
| datadir | /var/lib/mysql/ |
+—————+—————–+
1 row in set (0.00 sec)
5、查看、创建、修改数据库名
查看所有数据库名,输入命令
show databases;
创建数据库名,输入命令:
create database +数据库名称 ;(注意分号结尾)
高级命令创建数据库,且设置数据库编译格式为utf8或 utf8mb4:
CREATE DATABASE abc数据库名称 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE abc数据库名称 CHARACTER SET utf8 COLLATE utf8_general_ci;
6、启动mysql服务
ubuntu系统下:
启动mysql,输入命令
sudo /etc/init.d/mysql start
停止mysql,输入命令
sudo /etc/init.d/mysql stop
重启mysql,输入命令
sudo /etc/init.d/mysql restart
7、修改统一数据库编码格式为utf8
a.先查看当前数据库编码格式:
输入命令mysql -uroot -p 进入mysql
继续输入命令
show variables like ‘%character%’;
返回结果为当前所有数据库的编码格式
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)
b.从上面可以看出mysql初始并非所有都是utf8编码,需要进行修改统一。
执行命令control+d ,退出数据库
继续执行命令进入vi编辑
sudo vim /etc/mysql/conf.d/mysql.cnf
在
标签的下一行添加下面的配置
default-character-set=utf8
输入下面的命令,打开第二个配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到
标签,在其下一行添加下面的配置
character-set-server=utf8
配置文件修改成功之后,输入下面的命令重启mysql服务
sudo /etc/init.d/mysql restart
8、安装网站程序起始页,需要填写数据库地址
一般填写 localhost
9、查看下mysql的user表的用户权限
输入命令
select user, plugin from mysql.user;
返回结果
+——————+———————–+
| user | plugin |
+——————+———————–+
| root | auth_socket |
| mysql.session | mysql_native_password |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+——————+———————–+
4 rows in set (0.00 sec)
查看user表host、username、authentication_string密码信息
连接数据库服务器:
mysql -u root -p
显示所有的database:
show databases;
选择名为“mysql”的database:
<span class="hljs-keyword">use</span> mysql;
显示“mysql” database的所有表:
<span class="hljs-keyword">show</span> <span class="hljs-keyword">tables</span>;
可以看到“mysql”database中有个user表:
显示user表结构:
desc user;
查看当前所有MySQL用户的username、host、密码(注意MySQL从某个版本开始,密码字段不是password,而是authentication_string):
<span class="hljs-keyword">select</span> <span class="hljs-keyword">User</span>,Host,authentication_string <span class="hljs-keyword">from</span> <span class="hljs-keyword">user</span>;
可以看到:
mysql> select User,Host,authentication_string from user;
+——————+———–+——————————————-+
| User | Host | authentication_string |
+——————+———–+——————————————-+
| root | localhost | *41553C6F2E22C0515D9EC250AB12FC9245DF6F04 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *26A6386C3FE81DB74F8778DA77035242A9698E53 |
| root | % | *41553C6F2E22C0515D9EC250AB12FC9245DF6F04 |
+——————+———–+——————————————-+
5 rows in set (0.00 sec)
10、开放root@localhost在图形界面登录权限
问题很奇葩,ubuntu下用root登陆mysql可以成功,但通过图形界面登陆mysql却报错: ERROR 1698 (28000): Access denied for user ‘root’@’localhost’
输入命令,登陆mysql
sudo mysql -u root -p
查看user表:
select user, plugin from mysql.user;
结果如下:参考9问题
| user | plugin |
+——————+———————–+
| root | auth_socket |
发现root的plugin并不是本地密码,因此需要修改它,但由于MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。如果修改的密码太过低级,则无法通过,报如下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
先在mysql登陆下,修改密码策略,依次输入命令
set global validate_password_policy=0;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=3;
set global validate_password_special_char_count=0;
set global validate_password_length=3;
继续修改root用户对应密码,输入命令
update mysql.user set authentication_string=PASSWORD(‘输入root用户的密码‘), plugin=‘mysql_native_password’ where user=‘root’;
继续输入命令,刷新
flush privileges;
重启mysql
我是ubuntu系统,输入命令如下。其他系统输入常用重启mysql命令即可
sudo /etc/init.d/mysql restart
进入mysql,查看user表root密码是不是本地
最后通过图形界面访问 ‘root’@’localhost’成功!
11、开放mysql任意ip远程访问权限
编辑mysql的启动配置文件
sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
加前缀#注释掉bind-address = 127.0.0.1
保存并退出gedit
授权远程任意IP地址可以访问数据库
mysql> grant all privilages on hello.* to xyz@”%” identified by “访问数据库的密码” with grant option;
mysql> flush privileges;
mysql> quit
sudo ufw enable
sudo ufw default deny
sudo ufw allow 3306
重启mysql
sudo /etc/init.d/mysql restart
输入命令
netstat -an|grep 3306
返回结果,本地127 ip以变为:::,则表明容许任何ip访问数据库
root@node1:~# netstat -an | grep 3306 tcp6 0 0 :::3306 :::* LISTEN
12、mysql提示密码不符合要求:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql -u root -p #登录
mysql>set global validate_password_policy=0; #密码强度设为最低等级
mysql>set global validate_password_length=4; #密码允许最小长度为4
mysql>flush privileges; #更新授权表,生效
13、确认mysql 3306端口开放访问
输入命令
netstat -an|grep 3306
返回结果
root@node1:~# netstat -an | grep 3306 tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
注意:现在的3306端口绑定的IP地址是本地的127.0.0.1
Ubuntu系统下常见命令 sudo ubuntu用户
2019年5月18日
1、为什么linux 其他系统生成的用户名是root,而ubuntu系统生成的用户名默认是ubuntu?
安全性考虑,默认生成一般用户名ubuntu进行用户登录。
需要单独开放root登录,操作比较复杂。出于安全性运维考虑,不建议开通。
—
开放root用户登录
登录ubuntu用户,输入命令:
sudo passwd root
设定root密码
开放root进行ssh登录权限
用ubuntu用户登录,输入命令 su root 切换到root用户,输入root密码登录
进入vi编辑ssh权限
root@ubuntu:~# vi /etc/ssh/sshd_config
找到下面这段代码,注释掉 #PermitRootLogin without-password,
添加 PermitRootLogin yes
进入vi的编辑 退出 保存方式,详见3
2、ubuntu系统下经常使用sudo命令,需要输入sudo的密码是什么?
我刚装完ubuntu系统,执行sudo命令的时候,提示我输入sudo密码。那sudo密码是啥?是当前用户名的密码,我当前用户名是ubuntu,即其对应的密码。
3、进入指定文件夹命令
cd /root/xx
注意cd命令后面有空格
返回命令:
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd或cd ~ 返回home目录
cd – 目录名 返回指定目录
control + D 退出linux 当前命令
4、网站程序需要安装在那个目录下?
/var/www/zhandian1
www为新建目录,后面放每个站点名称。对应网站安装程序可以放到站点目录下
5、查看ubuntu版本命令
终端根目录,输入命令
cat /etc/issue