mysql
多实例
1.my.cnf
通过定义mysqldconfig类 mysqld_vars = {} 从里面获得很多配置文件相关参数写入字典
mysql.py
2.init DB
初始化数据库
3.修改权限
4.rc脚本启动
mysql模块 ConfigParser修改配置文件
/usr/share/mysql/各种配置文件路径
allow_no_value=True
c = ConfigParser.ConfigParser(allow_no_value=True)
In [7]: c.read('/usr/share/mysql/my-large.cnf')
Out[7]: ['/usr/share/mysql/my-large.cnf']
c.options('mysqld')
Out[10]:
['myisam_sort_buffer_size',
'skip-locking',
'read_rnd_buffer_size',
'read_buffer_size',
'log-bin',
'thread_cache_size',
'port',
'query_cache_size',
'binlog_format',
'socket',
'sort_buffer_size',
'server-id',
'max_allowed_packet',
'thread_concurrency',
'table_open_cache',
'key_buffer_size']
In [11]: c.set('mysqld','datadir','/tmp/mysql101')
In [12]: c.get('mysqld','datadir')
Out[12]: '/tmp/mysql101'
In [13]: c.write(open('/tmp/my01.cnf','w‘)
super 实现对一个父类实现调用
把一个参数传给一个属性
def __init__(self,config,**kw):
不确定接收几个参数 **kw
In [14]: def f(x,y):
....: print x
....: print y
....:
In [15]: f(1,2)
1
2
In [16]: t = (1,2)
In [18]: f(*t)
1
2
In [19]: def f(user='test',passwd='123'):
print user
print passwd
....:
In [20]: f('a','123')
a
123
In [21]: d = {'user':'test1','passwd':'123'}
In [22]: d
Out[22]: {'passwd': '123', 'user': 'test1'}
In [23]: f(**d)
test1
123
In [26]: def f(x,*args):
print x
print args
....:
In [27]: f(1,2,3)
1
(2, 3)
* 元组
**字典
In [30]: def f(x, *args, **kwargs):
print x
print args
print kwargs
....:
In [31]: f(1,2,user='test')
1
(2,)
{'user': 'test'}
setattr 设置类属性
getattr 取得类属性
setattr(a,'var3','three')
getattr(a,'var3')
mysql_install_db --defaults-file=/tmp/my01.cnf
chown -R mysql:mysql /tmp/mysql101
mysqld_safe --defaults-file=/tmp/my01.cnf &
mysql -S /var/lib/mysql/mysql.sock
-c create 创建实例
abspath取绝对路径
mysqladmin -S socket shutdown
3.mysqlDB show variables;
show global variables like '%max%';
cur.fetchall()
cur.fetchone()